我试图读取csv文件的每一行,并获得"行包含NULL字节"错误.
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
Run Code Online (Sandbox Code Playgroud)
使用下面我发现我有空字节.
if '\0' in open(mycsv).read():
print("have null byte")
Run Code Online (Sandbox Code Playgroud)
解决这个问题的最佳方法是什么?在所有行上替换'\ 0'?我需要每天处理这种文件,并且有大约400,000行(1Gb)的数据.我认为替换会大大减慢这个速度.
小智 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)
Run Code Online (Sandbox Code Playgroud)