我正在处理一些 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 字节。