我试图使用该代码从日志文件中提取行:
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
我该如何解决?
答案 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