Find number of rows in large .csv file using python
本问题已经有最佳答案,请猛点这里访问。
我正在使用非常大的.csv文件,并试图找到文件中的行数以及其他内容,例如解析为json等。
我的问题是如何克服csv库的限制,因为我经常收到以下错误。
我提供了一个示例程序,我知道在python3中工作,它将返回csv文件中的行数。
1 2 3 4 5 6 7 8 | import csv input = 'large-input.csv' with open(input ,"r") as f: reader = csv.reader(f,delimiter =",") data = list(reader) row_count = len(data) print(row_count) |
但是,当我对1.5GB的csv文件运行时,我继续收到此错误。
1 2 3 4 | Traceback (most recent call last): File"csv-len.py", line 6, in <module> data = list(reader) _csv.Error: field larger than field limit (131072) |
任何有关此问题的工作都非常感谢。 谢谢!
CSV通常是换行符分隔的,因此通过CSV解析器运行它只是为了计算行数,与仅计算行数相比可能是低效的。
这样的事情会快得多。 如有必要,您可以减去标题的一行。
1 2 3 4 5 | def row_count(input): with open(input) as f: for i, l in enumerate(f): pass return i |