Sto lavorando con alcuni file CSV, con il seguente codice:
reader = csv.reader(open(filepath, "rU")) try: for row in reader: print "Riga letta correttamente!", riga eccetto csv.Error, e: sys.exit("file %s, riga %d: %s" % (filename, reader.line_num, e))
E un file genera questo errore:
file my.csv, riga 1: la riga contiene byte NULL
Cosa posso fare? Google sembra suggerire che potrebbe essere un file Excel che è stato salvato come .csv in modo improprio. C'è un modo per aggirare questo problema in Python?
== UPDATE ==
Seguendo il commento di @JohnMachin di seguito, ho provato ad aggiungere queste righe al mio script:
print repr(open(filepath, "rb").read(200)) # dump 1st 200 byte di dati del file = open(filepath, "rb").read() print data. find("x00") print data.count("x00")
E questo è l'output che ho ottenuto:
"xd0xcfx11xe0xa1xb1x1axe1x00x00x00x00x00x00x00x00 .... <taglia> 8 13834
Quindi il file contiene effettivamente byte NUL.