2017-06-01 88 views
2

餘米試圖從日誌文件中的行,使用代碼:的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 

我怎麼能修理它 ??

+2

你的文件是如何編碼的? – gonczor

+0

如果你指出字節的內容,比如說2212到2219,它可能會有所幫助。 – greybeard

回答

3

如果它不編碼爲文本,然後你將不得不在二進制模式如將其打開:

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

如果它的編碼不是UTF-8,它可以在文本模式下打開然後open採取其他的東西一個encoding參數:https://docs.python.org/3.5/library/functions.html#open

+0

感謝它的工作,正如你所說,我在開放函數中添加了'rb' – Ussopokingo

4

嘗試以下

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時(或任何真正的語言)打開文件時,這是一個常見的錯誤。這是一個很快會學到的錯誤。

+0

謝謝第一個完美的工作 – Ussopokingo

相關問題