讀取檔案編碼錯誤

2021-08-20 18:18:01 字數 1684 閱讀 6069

由於python中預設的編碼是ascii,如果直接使用open方法得到檔案物件然後進行檔案的讀寫,都將無法使用包含中文字元(以及其他非ascii碼字元),因此建議使用utf-8編碼。為了避免讀寫錯誤,可以直接使用codecs模組。

下面的**寫入了一行英文和一行中文到檔案中。 

import codecs

file = codecs.open('test.txt','w','utf-8')file.write('hello world!\n')file.write('哈哈哈\n')file.close()

open('test.txt','w','utf-8')file.write('hello world!\n')file.write('哈哈哈\n')file.close()

獲取網頁編碼格式後,我們便可以對網頁內容進行解碼,再編碼成統一的格式進行處理。

import urllib2

import chardet

import time

response = urllib2.urlopen('')

content = response.read()

t = time.time()

charset = chardet.detect(content[:400])['encoding']

content = content.decode(charset, 'ignore').encode('utf-8')

ignore引數是為了忽視那些無法被解碼為unicode的字元,如果不加此引數則可能會出現類似下面的錯誤

unicodedecodeerror: 'gb2312' codec can't decode bytes in position 61399-61400: illegal multibyte sequen

python讀取未知編碼檔案

結合檢測編碼和讀取內容 參考文件 在開發日誌分析功能時,需要讀取不同編碼的檔案然後對檔案內容進行解析,那麼首先要解決的就是如何檢測編碼的問題。為了方便演示,先建立5個測試檔案 檔名對應編碼 utf8 file,utf8bom file,gbk file,utf16le file,utf16be fi...

Python 讀取檔案編碼問題

讀取csv檔案,有時可能會遇見編碼問題。join 是自動在 字串 陣列之間加上 放在set裡用來去重 def csvprocess self flag true 去重處理 產國 大類 型別 with open self.cms data path,encoding utf 8 sig as f re...

python 讀取unicode編碼檔案

參考 import chardet f open a.txt rb text f.read info chardet.detect text print info import chardet f open a.txt encoding utf 16 text f.read print text.e...