day08/09
阿新 • • 發佈:2019-01-08
- 字元編碼
- 什麼是字元編碼
- 人類語言翻譯為二進位制,翻譯的過程稱之為字元編碼
- 儲存不是目的,能取出來才是目的
- 要想儲存翻譯分結果則保證採用相同的規範,也就是字串
- 人類語言翻譯為二進位制,翻譯的過程稱之為字元編碼
- 亂碼發生的兩種情況
- 1.存的時候使用的編碼與取的時候的不同
- 存的時候,出現了編碼表中不存在的字元,例如既有英文,又有中文,但是採用了ascll來編碼
- 保證不亂碼
- 存取一致
- 使用相容萬國的編碼表
- 直譯器在讀取檔案後識別語法,當在定義字串變數時又涉及到編碼問題
- py2中預設採用ascll,也可以使用coding來指定,但也有亂碼的可能:當coding為gbk,而輸出字元時採用utf-8
- py3中預設採用unicode,並且coding也只能修改前兩階段解碼過程,無法修改定義變數的編碼
- encode和decode
- encode使用場景
- 需要將文字寫入到硬碟時
- 需要將文字基於網路傳送時
- encode使用場景
- 什麼是字元編碼
- 檔案處理
- 檔案是作業系統提供的一套虛擬介面,用於簡化對硬碟的操作,一個檔案就代表硬碟上的一段二進位制資料,學習檔案處理是為了將資料永久儲存
- 基本形式
- 開啟檔案語法
f = open(r"檔案路徑",mode="rt",encoding="utf-8") f.read() f..write() f.close()- 語法2
with open(r"檔案路徑",mode="rt",encoding="utf-8") as f: pass
- 語法2
- 開啟檔案的模式
預設為t模式 即文字操作模式 r == rt 只讀文字 w == wt 只寫文字 a == at 追加寫文字- 無論是讀還是寫 都需要指定編碼方式,如果不指定 windows預設為GBK linux預設UTF-8
- 操作資料都是字元為單位
- a 和 w 都是寫入模式,如果檔案不存在都會建立新檔案
- 不同的是 w會清空原始檔 a不會情況且會將游標移動檔案末尾
- 開啟檔案語法
- b模式
b表示位元組模式 與文字相同在於 都必須與r、w、a連用 rb 只讀位元組模式 wb 只寫位元組模式 ab 追加只寫位元組模式 b模式可以操作任意型別的檔案- b模式可以操作任意型別的檔案
- 注意:
- b模式不允許設定編碼引數
- 讀寫資料都以位元組為單位
- 可讀可寫
+ 表示可讀可寫模式 也不能單獨使用 - r+ == r+t 直接寫入 會把元資料覆蓋掉
- w+ == w+t 開啟就清空 所以讀不到
- a+ == a+t 開啟就移動游標到末尾 也讀不到
- 可讀可寫位元組模式
- r+b 直接寫入 會把元資料覆蓋掉
- w+b 開啟就清空 所以讀不到
- a+b 開啟就移動游標到末尾 也讀不到 僅僅是單位不同
- 每一個都有問題 所以可讀可寫並不常用
- 字元編碼