У меня нет ответа, но я могу подтвердить проблему, и большинство опубликованных ответов не работают. Вы не можете поймать это исключение. Вы не можете проверить на if line
. Возможно, вы могли бы проверить наличие байта NULL напрямую, но я не достаточно быстр, чтобы сделать это ... Если он всегда находится на последней строке, вы, конечно, можете пропустить это.
import csv
FH = open('data.csv','wb')
line1 = [97,44,98,44,99,10]
line2 = [100,44,101,44,102,10]
for n in line1 + line2:
FH.write(chr(n))
FH.write(chr(0))
FH.close()
FH = open('data.csv')
reader = csv.reader(FH)
for line in reader:
if '\0' in line: continue
if not line: continue
print line
$ python script.py
['a', 'b', 'c']
['d', 'e', 'f']
Traceback (most recent call last):
File "script.py", line 11, in <module>
for line in reader:
_csv.Error: line contains NULL byte