目前計算機記憶體的字元編碼都是unicode,目前國內的windows作業系統採用的是gbk。
python2預設的字元編碼方式是ascii
python3預設的字元編碼方式是unicode
.py檔案頭部的#coding:utf-8是幫助python識別.py檔案的編碼方式,故在寫.py檔案時要注意檔案頭和檔案儲存時的編碼方式要相同,否則可能會出現亂碼
python程式執行過程:
python的直譯器現在記憶體中啟動
直譯器把要執行的檔案以文字檔案的形式讀進記憶體
直譯器按照檔案的語法格式解釋執行**
python2和python3程式的執行方式基本相同
python2的直譯器在執行程式時,將檔案內的**按照檔案頭的編碼讀進記憶體。例如檔案頭部的編碼是gbk,python2讀進記憶體的時候,直接把檔案在硬碟裡的gbk二進位制編碼讀進記憶體。如果在不是以gbk為預設編碼的終端輸出時,會出現亂碼。python2可以在字串物件前加'u'表示unicode字元,但是這樣就不是str變數了。雖然pyhton2也能支援unicode編碼,但是這就像給python2打了乙個大補丁。python2的unicode物件就是python3str物件。
python3的直譯器就好多了,它在執行檔案內的**之前會先將**按照檔案頭的編碼轉換成unicode編碼讀進記憶體。這樣無論是在什麼編碼的機器上執行,unicode編碼都能很好的轉換成相應的編碼。
python程式不能直接操作硬碟的檔案,一般都是通過作業系統提供的介面間接地操作檔案。
一般來說,對檔案的操作的mode有兩種,t:字元方式 b:二進位制方式
字元方式只能操作文字檔案,在開啟檔案的時候需要指定encoding,不然會因為短句不準確產生亂碼
二進位制方式可以操作所有的檔案,在開啟檔案的時候不要指定encoding
操作完檔案後呼叫檔案物件的close()函式會關閉檔案,這只是關閉作業系統對檔案的訪問,在程式裡檔案物件會在程式結束的時候自動釋放,所以在操作檔案結束後,記得呼叫close()函式,釋放系統資源。當然可以用with上下文管理自動釋放資源。
python 字元編碼與檔案處理
字元編碼 計算機工作就要通電,也就是說 電 驅使計算機幹活,而電只有高電壓 二進位制1 低電壓 二進位制0 也就是說計算機只認數字。程式設計的目的就是讓計算機幹活,程式設計的結果就是一堆字元,也就是我們程式設計最終實現的是 一堆字元驅動計算機幹活呢。1 python直譯器是執行檔案內容的,因而pyt...
python檔案操作 字元編碼與檔案處理
本文目錄 一 字元編碼 二 檔案處理 應用程式 作業系統 計算機硬體 1.先啟動python直譯器 2.再將python檔案當作普通的文字檔案讀入記憶體 3.解釋執行讀入記憶體的 開始識別語法 字元編碼表 人類的字元 數字 1bytes 8bit 1b 8b 1位元組等於8個二進位制位 ascii碼...
python字元編碼和檔案處理
一.了解字元編碼的知識儲備 1.文字編輯器訪問檔案的原理 nodepad python,word 2.python直譯器執行py檔案的原理,python,test.py 3.過程 文字編輯器 乙個檔案的三個過程 cpython直譯器執行乙個py檔案的三個過程 4.字元編碼 字元編碼指的是字元轉換成或...