Python CSV错误:行包含NULL字节

我正在使用以下代码处理一些CSV文件:


reader = csv.reader(open(filepath, "rU"))

try:

    for row in reader:

        print 'Row read successfully!', row

except csv.Error, e:

    sys.exit('file %s, line %d: %s' % (filename, reader.line_num, e))

一个文件引发此错误:


file my.csv, line 1: line contains NULL byte

我能做什么?Google似乎建议它可能是Excel文件,未正确保存为.csv。有什么办法可以解决Python中的这个问题?


==更新==


在下面@JohnMachin的评论之后,我尝试将以下行添加到脚本中:


print repr(open(filepath, 'rb').read(200)) # dump 1st 200 bytes of file

data = open(filepath, 'rb').read()

print data.find('\x00')

print data.count('\x00')

这是我得到的输出:


'\xd0\xcf\x11\xe0\xa1\xb1\x1a\xe1\x00\x00\x00\x00\x00\x00\x00\x00\ .... <snip>

8

13834

因此该文件确实包含NUL字节。


料青山看我应如是
浏览 404回答 3
3回答

白猪掌柜的

将其读取为UTF-16也是我的问题。这是我的代码,最终起作用了:f=codecs.open(location,"rb","utf-16")csvread=csv.reader(f,delimiter='\t')csvread.next()for row in csvread:&nbsp; &nbsp; print row其中location是您的csv文件的目录。

米脂

我也遇到了这个问题。使用Python csv模块,我试图读取在MS Excel中创建的XLS文件,NULL byte并遇到遇到的错误。我环顾四周,发现了xlrd Python模块,用于从MS Excel电子表格文件读取和格式化数据。使用该xlrd模块,我不仅能够正确读取文件,而且还可以以前所未有的方式访问文件的许多不同部分。我认为这可能对您有帮助。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python