我正在尝试读取csv文件的每一行并获得“line contains NULL byte”错误。
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)的数据。我认为替换会大大减慢这种速度。
答案 0 :(得分:10)
试试这个!
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)