迭代文件列表并在dict(python)中为每个文件打印行数

时间:2017-04-10 17:20:28

标签: python dictionary

我有一个文件列表(csv),我想计算每个文件的行数。最后将每个计数打印成字典。

有任何建议/解释吗?

感谢

1 个答案:

答案 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