本文目錄:
一、字元編碼
二、檔案處理
應用程式作業系統
計算機硬體
1. 先啟動python直譯器2. 再將python檔案當作普通的文字檔案讀入記憶體
3. 解釋執行讀入記憶體的**,開始識別語法
字元編碼表: 人類的字元<------------>數字1bytes=8bit
1b=8b 1位元組等於8個二進位制位
ascii碼
:只能識別英文本元,1英文本元=8bit
用8個二進位制bit(位元位)位表示乙個英文本元
gbk:能識別漢字與英文,1漢字=16bit,1英文本元=8bit
shift_jis
euc-kr
unicode:能夠識別萬國字元,1字元=2bytes=16bit
兩大特點:
1. 能夠相容萬國字元
2. 與各個國家的字元編碼都有對映關係
utf-8:是unicode的轉換格式,1個英文本元=1bytes 1漢字=3bytes
重點理論:1編碼與解碼:
字元---編碼-->unicode的二進位制-------編碼----->gbk的二進位制
gbk的二進位制-----解碼-->unicode的二進位制----解碼->字元
2\ 解決亂碼問題的核心法則:
字元用什麼編碼格式編碼的,就應該用什麼編碼格式進行解碼
3\ python直譯器預設的字元編碼
python2:ascii
python3:utf-8通過檔案頭可以修改python直譯器預設使用的字元編碼
在檔案首行寫:
#coding:檔案當初存的時候用的字元編碼
針對python2直譯器中定義字串應該:
x=u"上"
對於python3解釋即便是x="上"
不加u字首也是存成unicode
在python3中
x='上'
#'上'存成了uncidoe
unicode--------encode----------->gbk
res=x.encode('
gbk') #
res是gbk格式的二進位制,稱之為bytes型別
gbk(bytes型別)-------decode---------->unicode
y=res.decode('
gbk') #
y就是unicode
關於字元編碼的操作:1. 編寫python檔案,首行應該加檔案頭:#
coding:檔案存時用的編碼
2. 用python2寫程式,定義字串應該加字首u,如x=u'上'
3. python3中的字串都是unicode編碼的,python3的字串encode之後可以得到bytes型別
人類與計算機打交道用的都是人類的字元,而計算機無法識別人類的字元,只能識別二進位制,所以必須將人類的字元編碼成計算機能識別的二進位制數字.檔案是作業系統提供給使用者/應用程式的一種虛擬單位,該虛擬單位直接對映的是硬碟空間
使用者/應用程式直接操作檔案(讀/寫)就被作業系統轉換成具體的硬碟操作,從而實現使用者/應用程式將記憶體中的資料永久儲存到硬碟中
#檔案處理的三個步驟
#f=open(r'c.txt',mode='r',encoding='utf-8') # 檔案物件(應用程式的記憶體資源)------》作業系統開啟的檔案(作業系統的記憶體資源)
## print(f)
#data=f.read()
#f.close() # 向作業系統傳送訊號,讓作業系統關閉開啟的檔案,從而**作業系統的資源
#上下文管理
#with open(r'c.txt',mode='r',encoding='utf-8') as f,open(r'b.txt',mode='r',encoding='utf-8') as f1:
#讀寫檔案的操作
#pass
#檔案的開啟模式:r(預設的) w a
#操作檔案內容的模式:
#t(預設的):操作檔案內容都是以字串為單位,會自動幫我們解碼,必須指定encoding引數
#b: 操作檔案內容都是以bytes(二進位制)為單位,硬碟中存的是什麼就取出什麼,一定不能指定encoding引數
#總結:t模式只能用於檔案本檔案,而b模式可以用於任意檔案
#r模式:唯讀模式,在檔案不存在時則報錯,如果檔案存在檔案指標跳到檔案的開頭
#with open(r'c.txt',mode='rt',encoding='utf-8') as f:
#print(f.read())
#print(f.readable())
#print(f.writable())
#f.write('hello') # 只能讀
#data=f.read()
#print(data,type(data))
#with open(r'c.txt',mode='rb') as f:
#data=f.read()
## print(data,type(data))
#res=data.decode('utf-8')
#print(res)
#with open(r'c.txt',mode='rt',encoding='utf-8') as f:
## line=f.readline()
## print(line,end='')
## line1=f.readline()
## print(line1,end='')
## line2 = f.readline()
## print(line2,end='')##
lines=f.readlines()
#print(lines)
#with open(r'c.txt',mode='rt',encoding='utf-8') as f:
#line=f.readline()
#print(line,end='')
#迴圈讀檔案內容的方法:
#with open(r'c.txt',mode='rt',encoding='utf-8') as f:
#for line in f:
#print(line,end='')
Python 字元編碼與檔案處理
目前計算機記憶體的字元編碼都是unicode,目前國內的windows作業系統採用的是gbk。python2預設的字元編碼方式是ascii python3預設的字元編碼方式是unicode py檔案頭部的 coding utf 8是幫助python識別.py檔案的編碼方式,故在寫.py檔案時要注意檔...
python 字元編碼與檔案處理
字元編碼 計算機工作就要通電,也就是說 電 驅使計算機幹活,而電只有高電壓 二進位制1 低電壓 二進位制0 也就是說計算機只認數字。程式設計的目的就是讓計算機幹活,程式設計的結果就是一堆字元,也就是我們程式設計最終實現的是 一堆字元驅動計算機幹活呢。1 python直譯器是執行檔案內容的,因而pyt...
字元編碼 檔案操作
cpu 將資料渲染給使用者,處理器 記憶體 臨時存放資料,斷電後消失 硬碟 永久儲存資料,斷電後還有 亂碼 存資料與讀資料採用的編碼表不一致 軟體開啟檔案讀取資料的流程 1.開啟軟體 2.往計算機發生乙個開啟檔案的指令,來開啟檔案 3.讀取資料渲染給使用者 訪問編碼不一致 亂碼 python直譯器開...