在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)
这工作,让我通过该文件,我只是想知道为什么我得到这些空字节。它们可能用来代替逗号作为分隔符吗? f.count('\ x00') 返回这些的1926个。 – Eric 2014-09-26 04:04:06
请参阅http://*.com/questions/7894856/line-contains-null-byte-in-csv-reader-python – han058 2014-09-26 04:23:14