decode是編碼,解碼
python中各種事物以物件的形式存在
計算機中0,1要實現和人類語言的互譯,就需要由「字典」:
「字典」,被叫做編碼表。簡單來說,就是建立起人類語言和計算機語言一一對應的表。從人類語言到機器語言,我們稱之為「編碼(encode)」,從機器語言到人類語言,我們稱之為「解碼(decode)」。
英文,乙個字元只佔乙個位元組(乙個位元組,是二進位制的八位數)。
中文佔兩個位元組,編碼表(ascii)
注意:python3預設使用unicode編碼來處理我們輸入的內容。所以encode('unicode')是不能使用的。
可以使用ord()的方法,來獲取單個字元的十進位制整數編碼。
四種編碼格式,應用於不同場景:
記憶體」。資料在記憶體當中處理時,使用的格式是unicode,統一標準。
在硬碟上儲存,或者是在網路上傳輸時,用的是utf-8,因為省空間
一些中文的檔案,中文的**,還在使用gbk,和gb2312。
utf-8和unicode可以非常輕易地按照乙個規則來互相轉換
b代表『位元組』,位元組型別資料
不同編碼之間是可以轉換的,利用encode與decode
1.ascii編碼
print('k'.encode('ascii'))
結果為b'k' 這兩個k不一樣,第乙個k為字串,第二個為bytes型別的資料,只佔了乙個位元組
2.unicode編碼
注意:因為python3利用unicode,所以不可以直接用encode
使用ord()的方法,來獲取單個字元的十進位制整數編碼,使用char()來獲取整數對應的相應字元
print(ord('地球')) print(char(12346))
3.gbk與utf-8 (都使用了encode,decode方法)
print('楓'.encode('gbk'))
#將漢字'楓'使用gbk編碼,得到:b'\xb7\xe3'
print(b'\xb7\xe3'.decode('gbk'))
#解碼,得到:楓
print('楓'.encode('utf-8'))
#將漢字'楓'使用utf-8編碼,得到:b'\xe6\x9e\xab'
print(b'\xe6\x9e\xab'.decode('utf-8'))
#解碼,得到:楓
可以看出,其用十六進製制表達的
二、檔案讀寫
模擬 把大象放進冰箱
就是 開——讀/寫——關 這三個步驟
1.開的操作語句
file1 = open('/users/motanyuan/desktop/abc.txt','r/w',encoding='utf-8')注意
這個句子第乙個引數為檔案的儲存位址,如果計算機中沒有這個檔案,則系統自動建立乙個
第二個引數為 以讀的方式開啟還是以寫的方式開啟(在這個很重要,因為計算機保護資料的方式不一樣)
第三個引數是採用何種編碼
下表為第二個引數的性質:
#要注意r/w/a 只能修改字串,音訊等格式需要rb/wb/ab引數
w是清空檔案裡的內容,重新覆蓋 a是在原始檔後新增內容
2.讀寫
開啟了檔案以後,使用read/write函式讀寫
3.關閉檔案
例子:
練習是:
將四個人的總得分寫入 1.txt檔案中
將資料按每一行來讀 readlines()函式
將每一行都分割成小的字串《——spilt()函式
split() 是把字串分割的,而還有乙個join(),是把字串合併的:
結果:
python檔案讀寫與編碼解碼
最近接觸到python的檔案讀寫與編碼解碼,非常頭疼,下面寫一下最近的思考 目的為 分析在ide中將中文字串以預設編碼寫入txt檔案,在windows系統下修改txt檔案的編碼,在ide中重新開啟此txt出現錯誤的原因 ide的預設編碼是utf 8 系統的預設編碼是ansi 對於以下 str 奧森山...
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...