我有一个文件列表(csv),我想计算每个文件的行数。最后将每个计数打印成字典。
有任何建议/解释吗?
感谢
答案 0 :(得分:0)
代码: 你和{和]有些混淆,你忘记了FOR,你在哪里试图创建字典理解。
filedata={filename:open(filename, 'r') filename in files]
应该是:
filedata={filename:open(filename, 'r') for filename in files}
你的任务是创建一个字典,但你以某种方式创建列表。
代码的工作版本
mylist=[]
files=['file1.csv','file2.csv']
filedata={filename:open(filename, 'r') for filename in files}
for i in filedata:
count = 0
for line in filedata[i]:
count+=1
mylist.append(count)
print mylist
您可以使用csv模块打开文件。 创建一个defaultdict,每次读取一行时,将1添加到字典中。
这样的事情:
import csv
from collections import defaultdict
files = ['file1.csv'
,'file2.csv']
final_dict = defaultdict(int)
for file in files:
with open(file,'rb') as current:
reader= csv.reader(current, delimiter=',')
for row in reader:
final_dict[file]+=1
print final_dict