溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

Python內(nèi)置文件操作有哪些

發(fā)布時(shí)間:2023-04-13 14:31:01 來(lái)源:億速云 閱讀:107 作者:iii 欄目:編程語(yǔ)言

這篇文章主要講解了“Python內(nèi)置文件操作有哪些”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來(lái)研究和學(xué)習(xí)“Python內(nèi)置文件操作有哪些”吧!

1、創(chuàng)建和打開(kāi)文件

想要操作文件需要先創(chuàng)建或代開(kāi)指定文件并創(chuàng)建文件對(duì)象,用open()方法實(shí)現(xiàn),其語(yǔ)法格式如下:

file=open(filename[, mode[, buffering]])

參數(shù)說(shuō)明

  • file:創(chuàng)建的文件對(duì)象

  • filename:要?jiǎng)?chuàng)建或打開(kāi)的文件名稱(chēng),需使用單引號(hào)會(huì)雙引號(hào)括起來(lái)。如果要打開(kāi)的文件和當(dāng)前文件在同一目錄,直接寫(xiě)文件名即可;否則,指定完整路徑。

  • mode:可選參數(shù),用于指定打開(kāi)模式,默認(rèn)為只讀(即r)

  • buffering:可選參數(shù),用于指定讀寫(xiě)文件的緩存模式,值為0表示不緩存,值為1表示緩存;如果大于1,則表示緩沖區(qū)的大小。默認(rèn)緩存模式。

默認(rèn)情況下,打開(kāi)一個(gè)不存在的文件,會(huì)顯示異常。

Python內(nèi)置文件操作有哪些

解決方法:

  • 當(dāng)前目錄下(執(zhí)行文件相同的目錄)創(chuàng)建一個(gè)test.txt文件

  • 調(diào)用open()方法時(shí),指定mode參數(shù)值為w、w+、a、a+,若不存在,則創(chuàng)建。

不同模式打開(kāi)完全說(shuō)明。

Python內(nèi)置文件操作有哪些

注意:打開(kāi)文件默認(rèn)采用GBK編碼,當(dāng)被打開(kāi)文件不是GBK編碼時(shí),可能會(huì)顯示異常。解決方案:1、直接修改文件的編碼2、在打開(kāi)文件時(shí),直接指定使用的編碼方式(推薦)。

file=open('test.txt','r',encoding='utf-8')

2、關(guān)閉文件

打開(kāi)文件后,需要及時(shí)關(guān)閉,以免占用資源,使用close()方法實(shí)現(xiàn)。

file.close()

注:使用close()方法時(shí)會(huì)先刷新緩沖區(qū)還沒(méi)有寫(xiě)入的信息,然后再關(guān)閉文件。

3、打開(kāi)文件使用with語(yǔ)句

打開(kāi)文件需要及時(shí)關(guān)閉,如果忘記關(guān)閉可能發(fā)生意想不到的問(wèn)題。另外,如果在打開(kāi)文件時(shí)顯示異常,那么將導(dǎo)致文件不能及時(shí)關(guān)閉。為避免此類(lèi)問(wèn)題,可以使用Python提供的with語(yǔ)句,從而無(wú)論是否顯示異常,都能保證with語(yǔ)句執(zhí)行完畢后關(guān)閉已經(jīng)打開(kāi)的文件。基本語(yǔ)法如下:

with expression as target:
 with-body

參數(shù)說(shuō)明:

  • expression:指定表達(dá)式,可以是打開(kāi)文件的open()方法。

  • target:用于指定一個(gè)變量,將expression的結(jié)果保存到該變量中。

  • with-body:用于指定with語(yǔ)句體,可以是執(zhí)行with語(yǔ)句后相關(guān)的一些操作語(yǔ)句,也可以直接pass。

with open('test.txt','w') as file
pass

4、寫(xiě)入文件內(nèi)容

Python文件對(duì)象提供write()方法,向文件中寫(xiě)入內(nèi)容。

file.write(str)

其中,file為打開(kāi)的文件對(duì)象;str為要寫(xiě)入的字符串。注意,寫(xiě)入前提有寫(xiě)入權(quán)限,指定打開(kāi)模式為w(可寫(xiě))或a(可追加)

使用open()函數(shù),將模式改為w或a打開(kāi)文件來(lái)創(chuàng)建文件對(duì)象。w模式下會(huì)覆蓋舊數(shù)據(jù)寫(xiě)入新數(shù)據(jù),a模式下可在原有數(shù)據(jù)基礎(chǔ)上增加新數(shù)據(jù)。

5、讀取數(shù)據(jù)

打開(kāi)文件后,除了向其寫(xiě)入或追加內(nèi)容,還有讀取文件中內(nèi)容。需要知道文件打開(kāi)模式為r(讀)或r+(讀寫(xiě))主要有以下3種情況:

  • 讀取指定個(gè)數(shù)字符

  • file.read([size])——其中,size為可選參數(shù),如果省略,則一次讀取所有內(nèi)容。

  • 讀取一行

  • file.readline()——每次讀取一行數(shù)據(jù),文件很大時(shí),采用逐行讀取。

  • 讀取所有行

  • file.readlines()——返回字符串列表,每個(gè)元素為文件的一行內(nèi)容。

with open('text.txt','r+',encoding='utf-8') as file:
print("讀取前4個(gè)字符串")
print(file.read(4))
print("讀取一行")
print(file.readline())
print("讀取所有行")
print(file.readlines())

注:如果想要讀取部分內(nèi)容,可以先使用文件對(duì)象seek()方法將文件指針移動(dòng)到新的位置,然后再用read()方法獲取。

file.seek(offset[,whence]).其中,offset參數(shù)用于指定移動(dòng)的字符串個(gè)數(shù),按一個(gè)漢字占兩個(gè)字符;whence值為0表示從文件頭開(kāi)始計(jì)算,1表示從當(dāng)前位置開(kāi)始計(jì)算,2表示從文件尾開(kāi)始計(jì)算,默認(rèn)0.

6、復(fù)制文件

Python復(fù)制文件需要使用shutil模塊的copyfile()方法。

shutil.copyfile(src,dst)

其中,src:要復(fù)制的源文件;dst:復(fù)制到的目標(biāo)文件。

7、移動(dòng)文件

Python移動(dòng)文件需要使用shutil模塊的move()方法。

shutil.move(src,dst)

其中,src:要移動(dòng)的源文件;dst:移動(dòng)到的目標(biāo)文件。

8、重命名文件

Python重命名文件需要使用os模塊的rename()方法。

os.rename(src,dst)

其中,src:指定要重命名的源文件;dst:指定重命名后文件。為確保正常執(zhí)行,可以使用os.path模塊的exists()方法判斷要操作的文件是否存在。

9、刪除文件

Python中刪除文件需要使用os模塊的remove()方法。

os.remove(path)

其中,path:指定要?jiǎng)h除的文件路徑,相對(duì)路徑或絕對(duì)路徑。

10、獲取文件基本信息

文件本身包含一些信息,如文件最后一次訪問(wèn)時(shí)間、最后一次修改時(shí)間、文件大小等基本信息。通過(guò)os模塊的stat()方法獲取。

os.stat(path)

感謝各位的閱讀,以上就是“Python內(nèi)置文件操作有哪些”的內(nèi)容了,經(jīng)過(guò)本文的學(xué)習(xí)后,相信大家對(duì)Python內(nèi)置文件操作有哪些這一問(wèn)題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是億速云,小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI