Я работаю с некоторыми файлами CSV со следующим кодом:
reader = csv.reader(open(filepath, "rU")) try: for row in reader: print "Строка успешно прочитана!", строка, кроме csv.Error, e: sys.exit("file %s, line %d: %s" % (filename, reader.line_num, e))
И один файл выдает эту ошибку:
файл my.csv, строка 1: строка содержит NULL байт
Что мне делать? Google кажется, предполагает, что это может быть файл Excel, который был неправильно сохранен как .csv. Есть ли способ обойти эту проблему в Python?
== UPDATE ==
Следуя комментарию @JohnMachin ниже, я попытался добавить эти строки в свой скрипт:
print repr(open(filepath, "rb").read(200)) # дамп первых 200 байт данных файла = open(filepath, "rb").read() print data. find("x00") print data.count("x00")
И вот что я получил:
"xd0xcfx11xe0xa1xb1x1axe1x00x00x00x00x00x00x00x00 .... <отрезать> 8 13834
Значит, файл действительно содержит NUL-байты.