UnicodeDecodeError,utf-8 无效连续字节

新手上路,请多包涵

我正在尝试使用该代码从日志文件中提取行:

     with open('fichier.01') as f:
         content = f.readlines()

    print (content)

但它总是做出错误声明

    Traceback (most recent call last):
    File "./parsepy", line 4, in <module>
    content = f.readlines()
    File "/usr/lib/python3.5/codecs.py", line 321, in decode
    (result, consumed) = self._buffer_decode(data, self.errors, final)
    UnicodeDecodeError: 'utf-8' codec can't decode byte 0xe9 in position 2213: invalid continuation byte

我该如何解决??

原文由 Ussopokingo 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 574
2 个回答

如果它没有编码为文本,那么您将不得不以二进制模式打开它,例如:

 with open('fichier.01', 'rb') as f:
    content = f.readlines()

如果它被编码为 UTF-8 以外的其他东西,并且可以在文本模式下打开,那么 open 采用 encoding 参数: https ://docs.python.org/3.5/library /functions.html#open

原文由 grahamlyons 发布,翻译遵循 CC BY-SA 3.0 许可协议

尝试以下操作之一

open('fichier.01', 'rb')
open('fichier.01', encoding ='utf-8')
open('fichier.01', encoding ='ISO-8859-1')

或者你也可以使用 io 模块

 import io
io.open('fichier.01')

这是使用 Python(或任何其他语言)打开文件时的常见错误。这是您很快就会发现的错误。

原文由 MattR 发布,翻译遵循 CC BY-SA 3.0 许可协议

推荐问题