我正在使用非常大的.csv文件,我正在尝试查找文件中的行数以及其他内容,例如解析为json等。
我的问题是如何克服csv库的限制,因为我经常收到以下错误。
我提供了一个我知道在python3中工作的示例程序,它将返回csv文件中的行数。
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文件运行时,我继续收到此错误。
Traceback (most recent call last):
File "csv-len.py", line 6, in <module>
data = list(reader)
_csv.Error: field larger than field limit (131072)
非常感谢任何有关此问题的工作。谢谢!
答案 0 :(得分:1)
CSV通常是换行符分隔的,因此通过CSV解析器运行它只是为了计算行数,与仅计算行数相比可能效率低。
这样的事情要快得多。如有必要,您可以为标题减去一行。
def row_count(input):
with open(input) as f:
for i, l in enumerate(f):
pass
return i