line包含python csv reader中的NULL字节错误

Eri*_*ric 2 python csv null

我试图读取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)