我在一个文件夹中有90个csv文件,每个文件都很大,如何在一个文本文件中获取所有csv文件的行数?
答案 0 :(得分:2)
如果您不需要使用python脚本并且可以在* NIX命令行上执行此操作:
wc -l *.csv > outputfilename
如果你真的想用python做这个:
import os
import csv
dirname = 'directory/with/csv/files'
outfile = open('path/to/output/file')
for fname in os.listdir(dirname):
if not fname.endswith('.csv'):
continue
with open(os.path.join(dirname, fname)) as infile:
numlines = sum(1 for row in csv.reader(infile))
outfile.write("file {} contains {} lines\n".format(fname, numlines))
outfile.close()
答案 1 :(得分:0)
计算行的方法比具有一百万行文件的sum(generator-expression)
快约5倍。它只计算所有换行符。
with open(csv_file) as f:
s = f.read()
numlines = s.count('\n')
您可能希望替换@ inspectorG4dget的解决方案,看看它是否有所作为。