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

时间:2014-09-26 02:07:59

标签: python csv null

我正在尝试读取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)的数据。我认为替换会大大减慢这种速度。

1 个答案:

答案 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)