写代码的时候,导入一个csv文件,就一直报这个错误。
csv.Error: line contains NULL byte
查了查,是说包含了空字符。看了一下csv的源码,其中一个函数表示,不能有空操作符,即不能有“\0”或者“\x00”(16进制)。
解决办法:
1.如果你的文件是从xlxs格式重命名为csv格式的话,那么重新再另存为csv格式一下就ok。
2.将空字符全部替换掉
例如:
with open(filepath, "rb") as f:
reader = csv.reader( (line.replace('\0','') for line in f) )
或者,
fi = open('my.csv', 'rb')
data = fi.read()
fi.close()
fo = open('mynew.csv', 'wb')
fo.write(data.replace('\x00', ''))
fo.close()
csv文件不可以是Unicode编码的,把导出的csv用ansi保存就没问题了。