1. 程式人生 > 實用技巧 >Python讀取編碼為gbk文件時候報錯

Python讀取編碼為gbk文件時候報錯

經常用python開啟中文文件,然後呢,經常忘記編碼,經常出錯,記錄錯誤:

UnicodeDecodeError: 'gbk' codec can't decode byte 0xad in position 5: illegal multibyte sequence

找出報錯的程式碼行。

1 filename = '有中文內容的.txt'
2 with open(filename, 'r') as file_object:
3     line = file_object.readlines()
4 print(line)

修復錯誤:

1 filename = '有中文內容的.txt
' 2 with open(filename, 'r', encoding='utf-8') as file_object: 3 line = file_object.readlines() 4 print(line)

延伸一點,上面使用的是上下文管理器開啟的文件,所以不需要關閉。如果是直接open的,一定要記得關閉,這樣能節省記憶體了啦。

找出錯誤的程式碼行。

1 filename = open('有中文字型或者是gbk編碼的文件.txt','r')
2 for line in filename: #按行讀取
3     print(line.strip()) #去除換行符
4 filename.close() #
關閉文件

修復錯誤:

1 filename = open('毛概.txt','r',encoding='utf-8') #加上編碼
2 for line in filename: #按行讀取
3     print(line.strip()) #去除換行符
4 filename.close() #關閉文件