1、文件的初步認識python
1.文件是什麼東西?app
1.1操做系統爲用戶或者應用程序提供了一個可讀寫硬盤的虛擬單位,該虛擬單位就是指文件。編碼
1.2文件的核心操做:讀和寫;即當咱們須要對文件進行讀寫操做時,就是對操做系統發起請求,而後由操做系統將將用戶或者應用程序對文件的讀寫操做轉換成具體的硬盤指令(好比控制硬盤的盤片轉動,控制機械手臂來讀寫數據)spa
2.文件是爲何產生的?操作系統
對於內存來講,沒法永久保存數據,只要咱們想要永久的存儲數據,都須要將數據保存到硬盤中,而操做文件就能夠實現對硬件的操做。指針
3.文件該怎麼使用?code
3.1 將內存中的臨時數據永久存儲到硬盤中去視頻
name="one piece" #定義變量就是將要儲存的數據從內存中存儲到硬盤中去
3.2 那麼如何把硬盤當中的數據讀到內存中去呢?blog
初步涉及到對文件的基本操做:內存
# r:rawstring:原生字符 f=open(r"文件路徑.txt"mode="r") #向操做系統發起請求,要求操做系統打開文件,佔用 #操做系統的資源 data=f.read() #向操做系統申請讀文件的請求,會被操做系統轉成具體的硬盤操做, #將內容由硬盤讀入內存 print(data) f.close() #向操做系統發起請求,要求操做系統關閉文件,回收系統資源
3.3 文件操做小結:3.3.1 打開須要操做的文件
3.3.2 讀寫文件
3.3.3 關閉該文件
⭐ ⭐ ⭐ 知識補充:
絕對路徑:從盤符(C:\\E:\\D:\\)開始寫一個完整的路徑
相對路徑:相對於當前執行文件所在的文件夾開始找
4、文件的具體操做⭐ ⭐ ⭐⭐ ⭐
先知:控制讀寫文件內容的結果有兩種:t模式(text)和b模式(bytes)
注意:A t與b這兩種模式均不能單獨使用,都須要與r/w/a配合使用
B 默認狀況下內容的格式是t
C 只有文本文件才能使用t模式,也只有文本文件纔有字符編碼的概念
1. 操做文件的基礎模式(r/w/a)
1.1 read,只讀模式
注意事項:只能讀,不能寫
在文件不存在時會報錯,文件存在的時候會將文件指針移動到開頭
1.2 write,只寫模式
注意事項:只能寫,不能讀
在文件不存在時會建立新的空文件,在文件存在時會將文件內容清空並寫上須要內容(也可理解成新寫的文本內容將舊的文本覆蓋了)
1.3 append,只追加寫模式
注意事項:只能寫,不能讀
在文件不存在時會建立新的空文件,在文件存在時會將指針移動到文件末尾(寫文本內容時也是從文件末尾開始寫入)
2. 二進制模式
注意:二進制必定不能指定字符編碼,只有t模式才與字符編碼有關
b是二進制模式,這是一種通用的文件讀取模式,正常狀況下全部的文件在硬盤中都是以二進制的形式存放的
3. 循環讀
3.1 文本文件--字符串-讀
f=open("文件路徑","rt",encoding="utf-8") for line in f : print(line) f.close()
3.2 文本文件--二進制-讀
f=open("文件路徑","rb") for line in f: print(line) f.close()
3.3 視頻文件--二進制-讀
f=open("文件路徑","rb") for line in f: print(line) f.close()
3.4文本文件--二進制-寫
f=open("文件路徑","wb") f.write("寫入內容".encode("utf-8")) f.close()
3.2 文本文件--二進制-追加寫
f=open("文件路徑","ab") f.write("追加寫內容",encode("utf-8")) f.close()
4 python提供的簡便作法
#上下文管理 with open("文件1路徑","rb")as f1,open("文件2路徑","wt",encoding="utf-8") as f2: src_data=f.read() #文件操做 res=src_data.decode("utf-8") #print(type(res)) f.write(res)
上述作法可簡便成
with open("文件1路徑","rb")as f1,\ open("文件2路徑","wb")as f2: #文件的操做 f.close()