1. 程式人生 > >day08/09

day08/09


      • 字元編碼
        • 什麼是字元編碼
          • 人類語言翻譯為二進位制,翻譯的過程稱之為字元編碼
            • 儲存不是目的,能取出來才是目的
            • 要想儲存翻譯分結果則保證採用相同的規範,也就是字串
        • 亂碼發生的兩種情況
          • 1.存的時候使用的編碼與取的時候的不同
          • 存的時候,出現了編碼表中不存在的字元,例如既有英文,又有中文,但是採用了ascll來編碼
        • 保證不亂碼
          • 存取一致
          • 使用相容萬國的編碼表
        • 直譯器在讀取檔案後識別語法,當在定義字串變數時又涉及到編碼問題
          • py2中預設採用ascll,也可以使用coding來指定,但也有亂碼的可能:當coding為gbk,而輸出字元時採用utf-8
          • py3中預設採用unicode,並且coding也只能修改前兩階段解碼過程,無法修改定義變數的編碼
        • encode和decode
          • 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
          • 開啟檔案的模式
            預設為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    開啟就移動游標到末尾 也讀不到    僅僅是單位不同   
        • 每一個都有問題 所以可讀可寫並不常用