Python 3 - 读取csv文件时出现'_csv.Error:line contains NULL'错误字节

时间:2018-04-12 10:33:00

标签: python python-3.x csv

我正在尝试读取包含NUL的csv文件 与csv阅读器 我搜索了很多方法来读取文件而没有错误,但找不到。

编辑: 添加文件的相关部分: https://drive.google.com/open?id=1rtF3ck6QymtH4_n4iUjavPnxZiryq_Q4

我的代码:

   with codecs.open(log_path, 'r') as csv_file:
        log_reader = csv.DictReader(csv_file)
        for line in log_reader:
            if line['Addition Information'] == str 
               # do something 

将不胜感激任何帮助 谢谢, Avishay

2 个答案:

答案 0 :(得分:1)

csv.reader()(因此也csv.DictReader())根本无法处理包含空字节的文件。

一种可能的解决方案是在读取输入文件时替换空字节,例如:通过使用生成器表达式,因为reader()将任何支持迭代器协议的对象作为参数:

with codecs.open(log_path, 'r') as csv_file:
    log_reader = csv.DictReader((l.replace('\0', '') for l in csv_file))
    for line in log_reader:
        if line['Addition Information'] == str 
           # do something 

答案 1 :(得分:0)

尝试修改您的代码:

with codecs.open(log_path, 'r', encoding='utf-8', errors='backslashreplace') as csv_file:
        log_reader = csv.DictReader(csv_file)
        for line in log_reader:
            if line['Addition Information'] == str 
               # do something