python - 使用 python 在大型 .csv 文件中查找行数

标签 python csv parsing limit bigdata

<分区>

我正在处理非常大的 .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)

非常感谢任何解决此问题的方法。谢谢!

最佳答案

CSV 通常以换行符分隔,因此与仅计算行数相比,通过 CSV 解析器运行它以计算行数可能效率低下。

这样的事情会快得多。如有必要,您可以为标题减去一行。

def row_count(input):
    with open(input) as f:
        for i, l in enumerate(f):
            pass
    return i

关于python - 使用 python 在大型 .csv 文件中查找行数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44144843/

相关文章:

c# - 解析文件中的Net Core Catch语句和其他业务逻辑

python - 从 jinja2 的父 block 中​​获取内容

mysql - 使用具有特定权限的CSV文件在mysql中创建多个用户

linux - 如何使用自定义分隔符将多行文件名合并为一个?

java - 使用java在csv中插入空行

Python 根据 csv 文件绘制时间与数据包的关系

java - 在 JSON 对象中解析 JSON 数组

python - 如果任何列值不遵守 pandas 中的条件,则删除行

python - 如何计算 Pandas 数据框中列中唯一元素的数量

Python:如何创建唯一的文件名?