儲備知識點:
1.計算機系統分為三層:
應用程式
作業系統
計算機硬體
2.執行python程式的三個步驟
1.先啟動python直譯器
2.再將python檔案當作普通的文字檔案讀入記憶體
3.解釋執行讀入記憶體的**,開始識別語法
字元編碼:
1.什麼是字元編碼
字元編碼表:人類的字元<->數字
1bytes=8bit
1b=8b 1位元組等於8個二進位制bit(位元位)位表示乙個英文本元
ascⅱ碼 :只能識別英文本元,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:ascⅱ
python3:utf-8
通過檔案頭可以修改python直譯器預設使用的字元編碼
在檔案首行寫:#coding:檔案當初存的時候用的字元編碼
針對python2直譯器中定義字串應該:
x=u"上"
對於python3解釋即便是x="上"不加字首u也是存在unicode
在python3中
x=『上』#'上』存成了unicode
關於字元編碼的操作:
1.編寫python檔案,首行應該加檔案頭:#coding:檔案存時用的編碼
2.用python2寫程式,定義字串應該加字首u,如x='u』上
3.python3中的字串都是unicode編碼的,python3的字串encode之後可以得到bytes型別
2. 為何字元要編碼
人類與計算機打交道用的都是人類的字元,而計算機無法識別人類的字元,只能識別二進位制,所以必須將人類的字元編碼成計算機能識別的二進位制數字
3如何用字元編碼
#coding:utf-8
『』』1 什麼是檔案
檔案是作業系統提供給使用者/應用程式的一種虛擬單位,該虛擬單位直接對映的是硬碟空間
2 為何要處理檔案
使用者/應用程式直接操作檔案(讀/寫)就被作業系統轉換成具體的硬碟操作,從而實現
使用者/應用程式將記憶體中的資料永久儲存到硬碟中
3 如何用檔案
『』』檔案處理的三個步驟
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='')
字元編碼和檔案處理
檔案處理 應用程式任何操作硬體的請求都需要向作業系統發起系統呼叫,然後由操作做系統去操作硬體 1.開啟了編輯器就開啟了啟動了乙個程序,是在記憶體中的,所以,用編 輯器編寫的內容也都是存放與記憶體中的,斷電後資料丟失。2.要想永久儲存,需要點選儲存按鈕 編輯器把記憶體的資料刷到了硬碟 上。3.在我們編...
python字元編碼和檔案處理
一.了解字元編碼的知識儲備 1.文字編輯器訪問檔案的原理 nodepad python,word 2.python直譯器執行py檔案的原理,python,test.py 3.過程 文字編輯器 乙個檔案的三個過程 cpython直譯器執行乙個py檔案的三個過程 4.字元編碼 字元編碼指的是字元轉換成或...
python 編碼和檔案操作
在這裡插入 片 toc 編碼相關知識 encode 編碼函式 decode 解碼函式 in 77 s i am hhh in 79 s.encode out 79 b i am hhh in 80 s b i am hhh in 81 s.decode out 81 i am hhh file.re...