Python的csv包固有问题
实践证明,当使用csv读取文件时,一旦文件里包含了’\0’或则’\x00’这种字符串时,会报错显示‘line contains null byte’。
一部分原因是文件中本身就存在这样的字符串,另一可能原因是该csv文件是从excel文件转换而来的,那么简单的处理的方式就是重新保存成csv。
如果不想修改文件,就需要将这些可能的null byte抽取掉。以下代码:
with open(path, 'r', encoding="UTF8") as f:
reader = csv.reader((line.replace('\0', '') for line in f), delimiter=",")
for row in reader:
print(row)