編碼(動詞):按照某種規則(這個規則稱為:編碼(名詞))將「文字」轉換為「位元組流」。而在python 3中則表示:unicode變成str
解碼(動詞):將「位元組流」按照某種規則轉換成「文字」。而在python3中則表示:str變成unicode
字串在python內部的表示是unicode編碼,因此,在做編碼轉換時,通常需要以unicode作為中間編碼,即先將其他編碼的字串解碼(decode)成unicode,再從unicode編碼(encode)成另一種編碼。
在新版本的python3中,取消了unicode型別,代替它的是使用unicode字元的字串型別(str),字串型別(str)成為基礎型別如下所示,而編碼後的變為了位元組型別(bytes)但是兩個函式的使用方法不變:
decode encode
bytes ------> str(unicode)------>bytes
u = '中文' #指定字串型別物件u
str = u.encode('gb2312') #以gb2312編碼對u進行編碼,獲得bytes型別物件str
u1 = str.decode('gb2312')#以gb2312編碼對字串str進行解碼,獲得字串型別物件u1
u2 = str.decode('utf-8')#如果以utf-8的編碼對str進行解碼得到的結果,將無法還原原來的字串內容
f = open('test.txt','r')
s = f.read() #讀取檔案內容,如果是不識別的encoding格式(識別的encoding型別跟使用的系統有關),這裡將讀取失敗
'''假設檔案儲存時以gb2312編碼儲存'''
u = s.decode('gb2312') #以檔案儲存格式對內容進行解碼,獲得unicode字串
'''下面我們就可以對內容進行各種編碼的轉換了'''
str = u.encode('utf-8')#轉換為utf-8編碼的字串str
str1 = u.encode('gbk')#轉換為gbk編碼的字串str1
str1 = u.encode('utf-16')#轉換為utf-16編碼的字串str1
python給我們提供了乙個包codecs進行檔案的讀取,這個包中的open()函式可以指定編碼的型別:
import codecs
f = codecs.open('text.text','r+',encoding='utf-8')#必須事先知道檔案的編碼格式,這裡檔案編碼是使用的utf-8
content = f.read()#如果open時使用的encoding和檔案本身的encoding不一致的話,那麼這裡將將會產生錯誤
f.write('你想要寫入的資訊')
f.close()
python3中codecs模組的使用
前言 對檔案進行操作過程中,會遇到檔案編碼格式的情況,這時候,codecs模組能很好的解決相關問題 示例 讀取文字內容 def readalertfile 從檔案中讀取已發往釘釘上的資訊 return if alertfile.is file with codecs.open alertfile,r...
python3實現windows下同名程序監控
公司老版的svn伺服器的svn服務經常意外關閉,需要寫個簡單的監控指令碼監控一下 首先多個svn服務使用不同的埠,使用wmic命令檢視所有svn程序占用的埠以此來判斷目標服務是否存活,wimc命令如下 wmic process where caption svn.exe get commandlin...
python3中異常處理 Python3異常處理
python的異常處理機制 使用 try.except 捕獲異常 try 業務實現 except error1,error2,as e 出現異常後的處理 異常類的繼承關係 baseexception systemexit keyboardinterrupt generatorexit excepti...