如何使用python讀寫(xiě)文件?
今天馬哥教育要跟大家分享的文章是如何使用Python讀寫(xiě)文件?熟悉Python的小伙伴們都知道Python 對(duì)文件的讀寫(xiě)在程序開(kāi)發(fā)中也是非常常見(jiàn)的操作,比如寫(xiě)入一些簡(jiǎn)單的系統(tǒng)日志、把爬蟲(chóng)采集的數(shù)據(jù)寫(xiě)入到本地文件等等,Python入門(mén)新手和正在Python學(xué)習(xí)的小伙伴快來(lái)看一看吧,希望能夠?qū)Υ蠹矣兴鶐椭?!
今天我們就詳細(xì)說(shuō)下怎么用 Python去讀寫(xiě)一個(gè)文件。
1、Python 寫(xiě)入文件
open('xxx.txt','w'),'w' 表示以寫(xiě)的模式打開(kāi)文件,在寫(xiě)之前要先找到這個(gè)文件,如果文件不存在, Python 則會(huì)先自動(dòng)創(chuàng)建該文件,然后再寫(xiě)入內(nèi)容。
注意程序?qū)懭氲膬?nèi)容并不一定立刻就寫(xiě)入硬盤(pán)了,往往是先寫(xiě)入到內(nèi)存中,然后再根據(jù)的系統(tǒng)的空閑時(shí)間慢慢從內(nèi)存寫(xiě)入硬盤(pán)中,等到調(diào)用 close 方法的時(shí)候才會(huì)確認(rèn)把內(nèi)存中剩下的數(shù)據(jù)寫(xiě)入到硬盤(pán)。
所以一旦我們忘記主動(dòng)調(diào)用 close 來(lái)關(guān)閉文件的話(huà),或者在程序?qū)懭胛募臅r(shí)候出現(xiàn)異常終止程序從而不會(huì)再繼續(xù)往下執(zhí)行 close 方法,就可能導(dǎo)致部分?jǐn)?shù)據(jù)丟失,為了避免這種情況,我們推薦使用 with 這種方式來(lái)打開(kāi)文件,使用 with 即不管是程序在完成對(duì)文件寫(xiě)入操作之后還是程序?qū)懭胛募惓=K止都會(huì)自動(dòng)調(diào)用 close 方法來(lái)關(guān)閉文件
如果重復(fù)對(duì)一個(gè)文件寫(xiě)入內(nèi)容,會(huì)不會(huì)對(duì)已經(jīng)存在的內(nèi)容有影響呢,答案是會(huì)的。
Python 的文件寫(xiě)模式分覆蓋寫(xiě)和追加寫(xiě)。剛剛上面提到的 'w' 模式就是覆蓋寫(xiě),即每次以 'w' 模式打開(kāi)文件都會(huì)先直接清空該文件,注意是只要一打開(kāi)就會(huì)先清空即使你不寫(xiě)入任何內(nèi)容。還有一種就是使用 'a' 追加模式,這種模式不會(huì)清空文件中原有的內(nèi)容,只會(huì)在原有內(nèi)容后面繼續(xù)追加新的內(nèi)容。
2、Python 讀文件
讀文件和寫(xiě)文件類(lèi)似,只不過(guò)是以讀的模式打開(kāi)文件,open('xxx.txt','r'),'r' 表示以只讀模式打開(kāi)文件,讀模式打開(kāi)文件需要確認(rèn)文件已經(jīng)存在,如果文件不存在程序會(huì)報(bào)找不到文件的錯(cuò)誤。
如果文件打開(kāi)成功,接下來(lái)會(huì)調(diào)用 read 方法來(lái)一次性把文件的所有內(nèi)容讀到內(nèi)存當(dāng)中,最后再需要調(diào)用 close 來(lái)關(guān)閉文件。文件的讀寫(xiě)操作完成之后都需要關(guān)閉文件,不然一直打開(kāi)的文件會(huì)占用系統(tǒng)資源。
同樣的,由于文件的讀寫(xiě)過(guò)程中可能會(huì)出現(xiàn)異常,導(dǎo)致不能執(zhí)行后面的 close 方法來(lái)關(guān)閉文件,所以跟上面提到的文件的寫(xiě)入一樣,我們也推薦使用 with 來(lái)打開(kāi)文件,總之,對(duì)于文件的讀寫(xiě)操作,都推薦使用 with 方式來(lái)打開(kāi)。
如果一個(gè)文件很大,有幾十個(gè) G ,那么把所有的內(nèi)容一次性讀到內(nèi)存中肯定不現(xiàn)實(shí),這時(shí)候我們可以循環(huán)讀文件,每次只讀指定大小的內(nèi)容,read(size) 表示只讀取 size 字節(jié)的數(shù)據(jù)。
也有的文件內(nèi)容是按行寫(xiě)入的,比如常見(jiàn)的 config 配置文件,我們還可以使用 readline() 可以按行來(lái)讀取內(nèi)容,也可以把文件所有內(nèi)容先按行讀取最后放到一個(gè)數(shù)組 list 中返回。
實(shí)際上不同的文件會(huì)有不同的編碼格式,上面我們講的都是基于 utf-8 編碼格式的文件,如果要打開(kāi)非 utf-8 的文件,還需要使用 open('xxx.txt','r',encoding='gbk') 這種方式來(lái)指定文件的編碼。
3、二進(jìn)制文件讀寫(xiě)
我們上面講的都是默認(rèn)的文本文件,還有常見(jiàn)的圖片、音視頻等二進(jìn)制文件怎么用 Python 讀寫(xiě)呢,其實(shí)只需要使用 'rb' 和 'wb' 這兩種模式就可以對(duì)二進(jìn)制文件進(jìn)行讀寫(xiě)了。
以上就是馬哥教育今天為大家分享的關(guān)于如何使用Python讀寫(xiě)文件的文章,希望本篇文章能夠?qū)φ?Python學(xué)習(xí)?和從事Python相關(guān)工作的小伙伴們有所幫助,想要了解更多相關(guān)知識(shí)記得關(guān)注馬哥教育官網(wǎng)。最后祝愿小伙伴們工作順利!
聲明:文章來(lái)源于網(wǎng)絡(luò),侵刪!