Pracuję z kilkoma plikami CSV, z następującym kodem:
reader = csv.reader(open(ścieżka pliku, "rU")) spróbuj: for row in reader: print "Wiersz odczytany pomyślnie!", wiersz z wyjątkiem csv.Error, e: sys.exit("plik %s, wiersz %d: %s" % (nazwa pliku, czytnik.linia_num, e))
I jeden plik zgłasza ten błąd:
plik my.csv, wiersz 1: wiersz zawiera NULL bajt
Co mogę zrobić? Google wydaje się sugerować, że może to być plik Excela, który został nieprawidłowo zapisany jako .csv. Czy jest jakiś sposób na obejście tego problemu w Pythonie?
== UPDATE ==
Postępując zgodnie z poniższym komentarzem @JohnMachin, spróbowałem dodać te wiersze do mojego skryptu:
print repr(open(ścieżka pliku, "rb").read(200)) # zrzuć pierwsze 200 bajtów danych pliku = open(ścieżka pliku, "rb").read() drukuj dane. find("x00") print data.count("x00")
A to jest wynik, który otrzymałem:
"xd0xcfx11xe0xa1xb1x1axe1x00x00x00x00x00x00x00x00 .... <snip> 8 13834
Plik rzeczywiście zawiera bajty NUL.