1. 程式人生 > >Python 第十三節 文件操作

Python 第十三節 文件操作

都是 bsp color 數據 每次 round write 參數 寫入文件

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 第十三節 文件操作