我有超过 200 个 12MB CSV 文件,我必须搜索所有文件才能列出包含特定子字符串的所有 CSV。然而,循环或我读取文件的方式有问题,因为没有打印结果,我不知道如何修复它。
我尝试过其他 stackoverflow 解决方案,但不幸的是,没有一个有效。
import csv, os, glob
path = r'C:/Users/me/Desktop/csvfolder/*csv'
keyword = '261892'
for Tname in glob.glob(path):
#print (os.path.abspath(Tname))
#read csv, and split on "," the line
csv_file = csv.reader(open(os.path.abspath(Tname), "r",encoding= 'UTF-8'), delimiter=",")
for row in csv_file:
if keyword == row[0]:
print (os.path.abspath(Tname))
您检查过“csv_file”变量的类型吗?如果它成为一个列表,我认为不会有任何行或列,而是列表的列表。
您可以通过在代码中添加“if row:”来检查空白行:
for row in csv_file:
if row:
if keyword == row[0]:
print (os.path.abspath(Tname))
我用自己的一组 80 个 csv 文件对其进行了测试,并使其正常工作。