百万行csv文件,需要行数

时间:2014-11-24 23:28:44

标签: unix count row

我在一个文件夹中有90个csv文件,每个文件都很大,如何在一个文本文件中获取所有csv文件的行数?

2 个答案:

答案 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的解决方案,看看它是否有所作为。