在python csv阅读器中包含空字节错误

问题描述:

我想读取一个csv文件的每一行,并得到一个“行包含NULL字节”的错误。在python csv阅读器中包含空字节错误

reader = csv.reader(open(mycsv, 'rU')) 
for line in reader: 
    print(line) 


Traceback (most recent call last): 
    File "<stdin>", line 1, in <module 
_csv.Error: line contains NULL byte 

使用下面的我发现我有空字节。

if '\0' in open(mycsv).read(): 
    print("have null byte") 

解决此问题的最佳方法是什么?在所有行上替换'\ 0'?我需要每天处理这种文件,并且有大约400,000行(1Gb)的数据。我认为更换会大大减缓这种下降。

试试这个!

import csv 

def mycsv_reader(csv_reader): 
    while True: 
    try: 
     yield next(csv_reader) 
    except csv.Error: 
     # error handling what you want. 
     pass 
    continue 
    return 

if __name__ == '__main__': 
    reader = mycsv_reader(csv.reader(open(mycsv, 'rU'))) 
    for line in reader: 
     print(line) 
+0

这工作,让我通过该文件,我只是想知道为什么我得到这些空字节。它们可能用来代替逗号作为分隔符吗? f.count('\ x00') 返回这些的1926个。 – Eric 2014-09-26 04:04:06

+0

请参阅http://*.com/questions/7894856/line-contains-null-byte-in-csv-reader-python – han058 2014-09-26 04:23:14