UnicodeDecodeError,utf-8无效的连续字节

时间:2017-06-01 13:35:15

标签: python python-3.5

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

    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

我该如何解决?

2 个答案:

答案 0 :(得分:7)

尝试以下其中一项

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

或者您也可以使用io Module

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

使用Python(或任何语言)打开文件时,这是一个常见错误。这是一个你很快就会学到的错误。

答案 1 :(得分:6)

如果它没有编码为文本,那么你必须以二进制模式打开它,例如:

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

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