我有一个csv文件,我想用Python读取它。当我使用下面的代码片段时,我得到一个错误。在with open(input_file, 'r') as file:
self.md = file.read()
UnicodeDecodeError: 'ascii' codec can't decode byte 0x89 in position 58658: ordinal not in range(128)
或者
^{pr2}$
或者with open(input_file, 'r', encoding='utf8') as file:
self.md = file.read()
UnicodeDecodeError: 'utf-8' codec can't decode byte 0x89 in position 58658: invalid start byte
或者with open(input_file, 'r') as file:
# START INFINITE LOOP
while (True):
self.md = file.readline()
print (self.md)
# END INFINITE LOOP
UnicodeDecodeError: 'utf-8' codec can't decode byte 0x89 in position 1314: invalid start byte
当我在textwarangler或Excel中打开该文件时,即使选择了displayinfisibles in textwarangler,我也没有看到任何奇怪的字符。其他一些奇怪的观察:出错的总是第1380行,即使我从文件中删除了1370-1390行。这让我怀疑这一行是否有错别字。在
有没有一种方法可以读取文件并直接跳过不可解码的字符?在
编辑
这是问题区域周围的一个十六进制垃圾场。位置58658是十六进制的位置E522。二线第二场的89人似乎是罪魁祸首。在000e510: 3436 3822 3b22 4152 454d 4920 2020 2020 468";"AREMI
000e520: 6e6f 8922 3b3b 3b0a 2246 3130 3030 3134 no.";;;."F100014
000e530: 3639 223b 2230 3030 3134 3639 223b 2245 69";"0001469";"E
编辑2
{cd1>编码可以读取文件。问题仍然存在:是否可以假设UTF-8读取文件,并跳过无法读取的字节序列?在