python3读取csv _csv.Error: line contains NUL

python3 读取稍大一点的 CSV 文件时,经常会出现这个错误:

for row in csv_reader:
    _csv.Error: line contains NUL

出现 _csv.Error: line contains NUL 错误通常是因为 CSV 文件中存在不可见的 NUL 字符(空字符),这会干扰 Python 的 csv.reader。这是文件读取的问题,通常发生在文件编码或格式异常时。

所以替换掉就行:

with open("puresai.csv", "r", encoding="utf-8", newline='') as f:
    # 替换掉 NUL 字符
    content = f.read().replace('\0', '')
    csv_reader = csv.reader(content.splitlines())
    # 逐行读取数据
    for row in csv_reader:
        count += 1
        ....

运行时有发现会被 Killed, 估计是文件太大,内存爆了,改成按行替换就行。

with open("puresai.csv", "r", encoding="utf-8", newline='') as f:
    # 使用 csv 模块逐行读取 CSV 数据
    csv_reader = csv.reader((line.replace('\0', '') for line in f))  # 逐行去除 NUL 字符
    # 逐行读取数据
    for row in csv_reader:
        count += 1
        ...

高频问题,记录一下,希望对你有用。


python3读取csv _csv.Error: line contains NUL
https://blog.puresai.com/2024/09/22/525/
作者
puresai
许可协议