gpt4 book ai didi

python - 检查 CSV 中的正则表达式

转载 作者:太空宇宙 更新时间:2023-11-03 18:27:05 25 4
gpt4 key购买 nike

我目前正在尝试运行我的 csv 文件并识别列中的行。

输出应类似于“此列仅包含字母字符”。

我当前的代码:在我的方法中:

print('\nREGULAR EXPRESSIONS\n' +
'----------------------------------')
for x in range(0, self.tot_col):
print('\n' + self.file_list[0][x] +
'\n--------------') # Prints the column name

for y in range(0, self.tot_rows + 1):

if regex.re_alpha(self.file_list[y][x]) is True:
true_count += 1
else:
false_count += 1

if true_count > false_count:
percentage = (true_count / self.tot_rows) * 100
print(str(percentage) + '% chance that this column is alpha only')

true_count = 0
false_count = 0

self.file_list 是列表格式的 csv 文件。self.tot_rowsself.tot_col 分别是程序中先前计算的总行数和总列数。

regex.re_alpha 已从文件导入,方法如下所示:

def re_alpha(column):
# Checks alpha characters
alpha_valid = alpha.match(column)
if alpha_valid:
return True
else:
return False

这目前有效,但是我无法添加其他正则表达式检查,例如字母、数字等

我尝试使用不同的正则表达式检查来复制 if 语句,但它不起作用。我还尝试在 regex.py 文件中进行计数,但是计数停止于“1”并返回错误的信息。我认为在 regex.py 文件中创建一个类会有帮助,但没有效果。

摘要:我想对我的 csv 文件运行多个正则表达式检查,并通过列对它们进行排序。

提前致谢。

最佳答案

从上面的代码中,CSV 的第一行包含列名称。这意味着您可以创建一个字典来包含您的结果,其中键是列名称。

from csv import DictReader

reader = DictReader(open(filename)) # filename is the name of the CSV file

results = {}

for row in reader:
for col_name, value in row.items():
results.setdefault(col_name, []).append(regex.re_alpha(value))

现在您有一个名为“结果”的字典,其中包含按列名称存储的正则表达式检查的输出。然后您可以输出统计数据。或者,您可以在列表中读取行时保存行,一旦决定顺序,您可以返回并将行输出到新的 CSV 文件,方法是使用新顺序中的键输出每个字典中的项目。

csv_writer = csv.writer(open(output_filename, 'w'))

new_order = [list of key names in the right order]
for row in saved_data:
new_row = map(row.get, new_order)
csv_writer.writerow(new_row)

诚然,这只是一个草图,但它应该可以帮助您继续前进。

关于python - 检查 CSV 中的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22973355/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com