在python程式設計尤其是處理web應用時,遇到編譯碼問題的概率較大,通常這種問題也比較繁瑣,記下自己的理解,以備不時之需。
編譯碼存在的意義主要是由於各種不同編碼方式的存在,有gbk啦,也有utf-8啦,還有gb2312等等。python中的decode和encode的引數意義是一樣的,即decode("utf-8")代表根據utf-8的編碼規則來解碼文字,最終得到的就是未經編碼的資料了,encode("utf-8")代表根據utf-8的編碼規則
來編碼文字,最終得到的就是編碼後的資料了。
在python如果知道文字的編碼方式可以直接通過str1 = str1.decode("utf-8")這樣的方式來解碼文字,但很多情況下我們是不知道文字的編碼方式的,那麼有沒有比較好的通用方式幫我們識別呢?答案是有,就是使用chardet庫。
chardet使用方式如示例**,其提供了獲取編碼方式的介面,直接呼叫就可以了
import chardet
mychar = chardet.detect(text)
print mychar["encoding"]
text = text.decode(mychar['encoding'],'ignore')
text現在成了未編碼資料,要想編碼成其他型別的直接呼叫encode介面就可以了。 關於Python那些事兒
1.易於學習 python有相對較少的關鍵字,結構簡單,和乙個明確定義的語法,學習起來更加簡單。2.易於閱讀 python 定義的更清晰。3.易於維護 python的成功在於它的源 是相當容易維護的。4.乙個廣泛的標準庫 python的最大的優勢之一是豐富的庫,跨平台的,在unix,windows和...
Python那些事兒 Python中的生成器
python使用生成器對延遲操作提供了支援,所謂延遲操作,是指在需要的時候才產生結果,而不是立即產生結果。gen exp i for i in range 10 生成器表示式 print gen exp generator for i in gen exp 取出生成器表示式的值,for迴圈 prin...
Python那些事兒 資料放縮
討論如何對資料進行放縮 import numpy as np np.random.seed 10 x np.random.randomint 10,25 1.0 for i in range 10 defmin max x return round round xx min x 1.0 max x ...