python檔案讀寫與編碼解碼

2021-08-07 14:58:51 字數 1004 閱讀 8589

#最近接觸到python的檔案讀寫與編碼解碼,非常頭疼,下面寫一下最近的思考

# 目的為:分析在ide中將中文字串以預設編碼寫入txt檔案,在windows系統下修改txt檔案的編碼,在ide中重新開啟此txt出現錯誤的原因

# ide的預設編碼是utf-8

# 系統的預設編碼是ansi

# 對於以下**

str="奧森山"

file=open(r"oythonhill.txt","w")

file.write(str)

# ide對字串"奧森山"用utf-8編碼為二進位制(

此處編碼只針對ide,需要和下面寫入檔案的編碼區分開來)

# 寫檔案由於未指定編碼,按照系統預設ansi編碼為二進位制,儲存在txt檔案中

# 瀏覽檔案時,按照預設ansi將二進位制解碼為字串,因此我們可以在txt視窗中瀏覽字串

# 此時,對於以下**

newfile=open(r"oythonhill.txt","r")

newfile=newfile.read()

print(newfile)

# 可以順利讀取txt檔案,讀取過程為:根據系統預設的ansi將儲存在txt中的二進位制解碼為字串,然後讀取

# 如果將txt以unicode編碼另存(如圖),

newfile=open(r"oythonhill.txt","r")

newfile=newfile.read()

print(newfile)

# 則不能順利讀取,會出現錯誤:unicodedecodeerror: 'gbk' codec can't decode byte 0xff in position 0: illegal multibyte sequence

# 原因是另存為操作將字串"奧森山"重新以unicode編碼為二進位制儲存,而上述python**則仍舊以預設ansi解碼,因此出現錯誤

python之編碼解碼與檔案讀寫

decode是編碼,解碼 python中各種事物以物件的形式存在 計算機中0,1要實現和人類語言的互譯,就需要由 字典 字典 被叫做編碼表。簡單來說,就是建立起人類語言和計算機語言一一對應的表。從人類語言到機器語言,我們稱之為 編碼 encode 從機器語言到人類語言,我們稱之為 解碼 decode...

python 檔案編碼 解碼

ascii ascii碼是西歐編碼的方式,採取7位編碼,所以是2 7 128,共可以表示128個字元,包括34個字元,如換行lf,回車cr等 其餘94位為英文本母和標點符號及運算符號等。gb2321 gb2312 是對 ascii 的中文擴充套件。相容ascii。編碼規定 編碼小於127的字元與as...

Python 編碼與解碼

字串型別是對人類友好的符號,但計算機只認識一種符號,那就是二進位制 binary 數,或者說是數字。為了用計算機可以理解的數字描述人類使用的字元,我們需要一張數字與字元對應的表。我們都知道在計算機中 1 byte 8bits,可以儲存 0 255共256個值,也就是說 1byte最多可以表示 256...