Python文件的操作處理,一看就會(huì)
每天進(jìn)步一點(diǎn)點(diǎn),關(guān)注我們哦,每天分享測(cè)試技術(shù)文章
本文章出自【碼同學(xué)軟件測(cè)試】
碼同學(xué)公眾號(hào):自動(dòng)化軟件測(cè)試,領(lǐng)取資料可加:magetest
碼同學(xué)抖音號(hào):小碼哥聊軟件測(cè)試
在讀取一個(gè)文件的內(nèi)容之前,需要先打開這個(gè)文件。在Python程序中可以通過(guò)內(nèi)置函數(shù)open()來(lái)打開一個(gè)文件程序中,并用相關(guān)的方法讀或?qū)懳募募械膬?nèi)容以供程序的處理和使用,同時(shí)可以將文件看作Python中的一種數(shù)據(jù)類型。
用函數(shù)open()的語(yǔ)法格式如下:
open(filename, mode='r', buffering=None, encoding=None, errors=None,
? ? ?newline=None, closefd=True, opener=None)
open: 打開
? ? ? 以什么樣的方式打開, 讀或?qū)?read, write
? ? ? ? ??以讀的方式:文本的方式, 二進(jìn)制的方式
? ? ? ? ??以寫的方式:文本的方式,二進(jìn)制的方式
? ? ? 寫文件的時(shí)候:覆蓋,追加(兩種方式)
當(dāng)使用上述函數(shù)open()打開一個(gè)文件后, 就會(huì)放回一個(gè)文件對(duì)象。上述格式中主要參數(shù)的具體說(shuō)明如下所示:
filename:表示要打開的文件名。(路徑+文件名)
mode:模式。
buffering:可選參數(shù),緩沖區(qū)大小
encoding:文件編碼類型。
文本文件才有可能需要編碼,二進(jìn)制文件不需要指定編碼 否則會(huì)報(bào)出異常
errors:編碼錯(cuò)誤處理方式。
newline:控制通用換行符模式的行為。
closefd:控制在關(guān)閉文件時(shí)是否徹底關(guān)閉文件。
上述格式中,參數(shù)“mode”表示文件打開模式。在Python程序中,常用的文件打開模式如下表所示:

下圖很好的總結(jié)了這幾種模式:

#默認(rèn)以文本讀的方式打開
file_obj = open("file.txt", encoding="utf-8")
data = file_obj.read()
print(data)
file_obj.close()
file_obj = open("file.txt", "rt", encoding="utf-8")
data = file_obj.read()
print(data)
file_obj.close()
file_obj = open("file.txt", "w", encoding="utf-8")
data = file_obj.write("11111111111111111")
print(data)
file_obj.close()
file_obj = open("file2.txt", "w", encoding="utf-8")
data = file_obj.write("11111111111111111")
print(data)
file_obj.close()
file_obj = open("file2.txt", "a", encoding="utf-8")
data = file_obj.write("2222222222222")
print(data)
file_obj.close()
file_obj = open("file3.txt", "a+", encoding="utf-8")
file_obj.write("33333333333333333333333333")
file_obj.close()
file_obj = open("file.txt", encoding="utf-8")
data = file_obj.read()
file_obj.close()
二進(jìn)制的方式(打開):
免費(fèi)領(lǐng)取碼同學(xué)軟件測(cè)試課程筆記+超多學(xué)習(xí)資料+完整視頻+面試題,可加微信:magetest
圖片,音頻,視頻或者其他的非文本的文件
#打開”IO.png“文件,并以二進(jìn)制的方式讀出,? b不能單獨(dú)使用(b前的r不能省略)
file_obj = open("IO.png", "rb")
data = file_obj.read()
print(data)
#關(guān)閉文件
file_obj.close()
#以二進(jìn)制的方式寫入文件”psb_copy.jpg“
file_obj = open("psb_copy.jpg", "wb")
file_obj.write(data)
#關(guān)閉文件
file_obj.close()
?注意:“IO.png”文件中,以存入了一張照片。
02文件的操作
以文本方式寫入的文件, 無(wú)需指定編碼以二進(jìn)制方式寫入文件,寫入的內(nèi)容要求為bytes,所以通過(guò)str.encode('utf-8')來(lái)返回 bytes
文件寫操作:write()方法
f.write("hello world")? ?#向目標(biāo)文本文 件寫入一行字符串? ? ? ? ? ? ? ? ? ? ? ? ? ??
f.write("hello world".encode("utf-8"))? # 向目標(biāo)二進(jìn)制文件寫入一行字符串
文件寫操作:writelines()方法寫入文件的字符串序列。
seq = ["hello world 1\n", "nihao wohao 2"] f.writelines( seq ) 7/15
文件讀操作:read()方法從文件讀取指定的字節(jié)數(shù),如果未給定或?yàn)樨?fù)則讀取所有。
ret = f.read() #默認(rèn)全部讀出
ret = f.read(5) #讀出指定長(zhǎng)度字符
文件讀操作:readline()方法可以讀出一行數(shù)據(jù)
ret = f.readline() #讀取一行?
注意:有個(gè)很像的 readlines()方法?ret = f.readlines()?#返回的是一個(gè)列表,且返回的是你讀取的字符所在行的整個(gè)內(nèi)容,但是當(dāng)數(shù)據(jù)較大時(shí),這樣的用法會(huì)很占用內(nèi)存。
03使用File操作文件
File對(duì)象中的屬性信息如下表所示:

在Python程序中,對(duì)象File時(shí)通過(guò)內(nèi)置函數(shù)實(shí)現(xiàn)對(duì)文件操作的,其中常用的內(nèi)置函數(shù)如下:

免費(fèi)領(lǐng)取碼同學(xué)軟件測(cè)試課程筆記+超多學(xué)習(xí)資料+學(xué)習(xí)完整視頻 ? 可加:magetest/關(guān)注碼同學(xué)公眾號(hào):自動(dòng)化軟件測(cè)試
本文著作權(quán)歸作者所有,任何形式的轉(zhuǎn)載都請(qǐng)聯(lián)系作者獲得授權(quán)并注明出處。
Python文件的操作處理,一看就會(huì)的評(píng)論 (共 條)
