一、什么是文件
1.應用程序運行過程中產生的數據最先都是存放在內存中的,如果想要永久保存下來,那么必須保存在硬盤中
2.應用程序如果想要操作硬件,那么必須通過操作系統,而文件就是操作系統提供給應用程序來操作硬盤的虛擬概念
3.用戶或應用程序對文件的操作,就是向操作系統發起調用,然后由操作系統來完成對硬盤的具體操作
結論:文件是操作系統提供給用戶/應用程序操作硬盤的一種虛擬概念/接口
二、文件模式的介紹(在后續章節中會詳細講)
1.控制文件的讀、寫內容的模式:t和b,t和b不能單獨使用,必須與r/w/a連用,如:rt
t:表示文本(默認的模式,如:r后面不寫t表示默認為文本模式)
1.讀寫都是以str為單位的
2.只針對類型為文本文件格式
3.必須指定encoding = “字符編碼”
b:表示二進制/bytes
2.控制文件的讀、寫操作的模式
r:表示只讀模式
w:表示只寫模式
a:表示只追加寫模式
+:r+、w+、a+ #r+表示只讀模式給加上寫模式(即可讀可寫),w+表示只寫模式加上可讀模式(即可讀可寫),a+表示在追加寫模式加上可讀模式(即可追加寫和讀)
二、文件操作的基本流程
1.打開文件,由應用程序向操作系統發起系統調用,操作系統打開該文件(這是會對應一盤硬盤空間)
# 這是打開文件(這里寫的是文件的絕對路徑),mode是指定文件的讀、寫,encoding指定文件的編碼格式(指定的編碼格式一定要與存文件的時候編碼格式保持一致)
f = open("E:\py\文件IO操作\open文件.txt",mode="r","encoding = utf-8")
#這里用的是文件的相對路徑,沒有指定文件的路徑表示已當前運行程序的路徑為前提去找下面的文件
f = open(“open文件.txt”,“r”,“encoding = utf-8”)
res = f.read() # 調用文件下的讀寫方法,會被操作系統轉化為讀/寫硬盤的操作
f.close() # 向操作系統發起關閉文件的請求,回收操作系統資源,注意:在打開文件后進行讀、寫操作后一定要關閉文件
2.文件的操作流程圖,對應上面1的代碼流程
3.with上下文管理
3.1為什么要用with關鍵字來進行上下文管理
因為當代碼過多時,很多人經常會忘記進行關閉文件(f.close()),所以考慮到這一點py給提供了該語法來進行自動關閉
3.2 with語法
with open("open文件.txt",mode="rt") as f: #改行代碼等於:f = open("E:\py\文件IO操作\open文件.txt",mode="r")
res = f.read()
print(res)
with語法同時打開多個文件,用分隔符(就是逗號)分開即可
with open(""open文件.txt",mode="rt"") as f,open(""open文件2.txt",mode="rt"") as f2:
res = f.read()
res2 = f2.read()
print(res)
print(res2)
# 同時打開多個文件時,一行的代碼過長,可以用轉義字符,表示他們還是一行的代碼
with open(""open文件.txt",mode="rt"") as f,\
open(""open文件2.txt",mode="rt"") as f2:
執行代碼塊······