我正在使用以下代码处理一些CSV文件:reader = csv.reader(open(filepath, "rU"))try: for row in reader: print 'Row read successfully!', rowexcept 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 filedata = 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>813834因此该文件确实包含NUL字节。
3 回答

白猪掌柜的
TA贡献1893条经验 获得超10个赞
将其读取为UTF-16也是我的问题。
这是我的代码,最终起作用了:
f=codecs.open(location,"rb","utf-16")
csvread=csv.reader(f,delimiter='\t')
csvread.next()
for row in csvread:
print row
其中location是您的csv文件的目录。

米脂
TA贡献1836条经验 获得超3个赞
我也遇到了这个问题。使用Python csv模块,我试图读取在MS Excel中创建的XLS文件,NULL byte并遇到遇到的错误。我环顾四周,发现了xlrd Python模块,用于从MS Excel电子表格文件读取和格式化数据。使用该xlrd模块,我不仅能够正确读取文件,而且还可以以前所未有的方式访问文件的许多不同部分。
我认为这可能对您有帮助。
添加回答
举报
0/150
提交
取消