Python 第十三節 文件操作
A
1、首先文件讀寫操作有以下幾種模式:
a\a+ w\w+ r\r+
a模式:追加_寫入模式,寫入指針默認在開頭,如果文件存在將在開頭追加寫入,如果文件不存在將創建文件再寫入。
a+模式:追加_讀寫模式,可讀可寫,寫入指針默認在末尾,如果文件存在將在末尾追加寫入,如果文件不存在將創建文件再寫入。
w模式:寫模式,如果文件存在,把文件覆蓋再寫入,如果文件不存在將創建文件再寫入。
w+模式:寫讀模式,可寫可讀,如果文件存在,把文件覆蓋再寫入,如果文件不存在將創建文件再寫入。
r模式:讀模式,如果文件存在,可讀取文件數據,如果文件不存在讀取將會報錯。
r+模式:讀寫模式,可讀可寫,如果文件存在,可讀取或寫入文件數據,如果文件不存在讀或寫取將會報錯。
2、而使用以上操作模式可以通過 open() 函數操作文件;
a、以下是open()使用方式
1 a_file = open(‘文件路徑‘,‘操作模式‘)
例: w模式
a_file = open(‘testf.txt‘,‘w‘,encoding=‘utf-8‘) #這裏傳入的第一個參數是路徑及文件名,第二個參數是文件操作模式,第三個參數是字符編碼。
a_file.write(‘測試寫入‘) #這裏使用到 open()的內置函數 write() 通過這個函數可以往裏面寫入數據,註意:write()傳入的是str()字符串。
上面例子,是在當前的目錄下打開testf.txt文件並向這個文件裏面寫入“測試寫入”,如果這個當前目錄下這個文件不存,
那麽將會創建一個文件並寫入,如果當前目錄已經存在,那麽將會打入寫入數據並覆蓋之前文件。
例:w+模式
a_file = open(‘testf.txt‘,‘w+‘,encoding=‘utf-8‘)
a_file.write(‘我出現了‘)
a_file = open(‘testf.txt‘,‘w+‘,encoding=‘utf-8‘)
bf=a_file.read()
print(bf)
執行後結果:
>>>我出現了
通過上面例子,w+是可以寫也可以讀取文件數據。
例: r模式 與 r+模式
a_file = open(‘testf.txt‘,‘r‘,encoding=‘utf-8‘) af=a_file.read() print(af)
>>>我出現了 a_file = open(‘testf.txt‘,‘r+‘,encoding=‘utf-8‘) a_file.write(‘我又出現了‘)#這裏直接使用了write寫入,直接把‘我出現了’覆寫了。在這之前可以,先讀文件,之後再寫文件,這樣就可以在後面追加數據了。 bf=a_file.read() print(bf)
>>>我又出現了
例: a模式 與 a+模式
a_file = open(‘testf.txt‘,‘a‘,encoding=‘utf-8‘) a_file.write(‘我出現了A‘) a_file = open(‘testf1.txt‘,‘a+‘,encoding=‘utf-8‘) a_file.write(‘創建一個新的文件了‘) a_file.seek(0)#文件指針位置,因為a+模式後指針停在末尾,通過seek(0)可以把指針位置調到0位置就是文件的開頭。 bf=a_file.read()#如沒有上一句代碼seek(0),這裏將讀不到文件
a_file.close()
print(bf)
>>>創建一個新的文件了
註意,a、a+ 在數據追加後,文件指針位置就停留在數據的尾端,如果沒有seek(0),直接read()讀取的話是讀取不到數據的。
close() 在這裏出現了,close()表示關閉文件句柄對象(這裏a_file就是文件句柄對象),在每次文件操作完畢之後都要使用這個函數來閉。
3、with 上下管理理器
使用方式
with open(‘testw.txt‘,‘a+‘,encoding=‘utf-8‘) as f:#這裏就直接通過with打開文件,as 是給打開的文件一個別名,這裏別名為 f 相當於變量。 a_file.write(‘創建一個新的文件了‘) a_file.seek(0) bf=a_file.read() print(bf)
>>>創建一個新的文件了
這裏使用的with,每次操作完文件後就不需要close()來關閉文件句柄對象,with內部已經做了處理。
B
1、上面的文件操作方式,如果直接使用來讀取圖片文件時,將會報錯,圖片如果通文件方式來打看到是一堆的亂碼,這是因為裏面都是二進制數據
python 讀取二進制文件,可以通過以下方式來讀寫。
ab rb wb
rb 以二進制讀模式打開
wb 以二進制寫模式打開
ab 以二進制追加模式打開
rb+ 以二進制讀寫模式打開
wb+ 以二進制讀寫模式打開
ab+ 以二進制讀寫模式打開
例:ab模式
with open(‘123.png‘,‘rb‘) as f: a=f.read() print(a)
這裏的操作方式以上述操作一樣、
Python 第十三節 文件操作