今天小編要跟大家分享的文章是如何使用python讀寫文件?熟悉python的小伙伴們都知道python對文件的讀寫在程序開發(fā)中也是非常常見的操作已亥,比如寫入一些簡單的系統(tǒng)日志、把爬蟲采集的數(shù)據(jù)寫入到本地文件等等来屠,python入門新手和正在python學(xué)習(xí)的小伙伴快來看一看吧虑椎,希望能夠?qū)Υ蠹矣兴鶐椭?!
今天我們就詳細(xì)說下怎么用 python去讀寫一個文件俱笛。
<img src="http://www.magedu.com/wp-content/uploads/2019/12/timg-4.jpg" alt="如何使用python讀寫文件捆姜?" class="wp-image-81545"/>
1、python 寫入文件
<img src="http://python.tedu.cn/upload/20190515/20190515105000_593.png" alt="零基礎(chǔ)Python教程"/>
open(‘xxx.txt’,’w’)迎膜,’w’ 表示以寫的模式打開文件泥技,在寫之前要先找到這個文件,如果文件不存在磕仅, python 則會先自動創(chuàng)建該文件珊豹,然后再寫入內(nèi)容。
注意程序?qū)懭氲膬?nèi)容并不一定立刻就寫入硬盤了榕订,往往是先寫入到內(nèi)存中店茶,然后再根據(jù)的系統(tǒng)的空閑時間慢慢從內(nèi)存寫入硬盤中,等到調(diào)用 close 方法的時候才會確認(rèn)把內(nèi)存中剩下的數(shù)據(jù)寫入到硬盤劫恒。
所以一旦我們忘記主動調(diào)用 close 來關(guān)閉文件的話贩幻,或者在程序?qū)懭胛募臅r候出現(xiàn)異常終止程序從而不會再繼續(xù)往下執(zhí)行 close 方法轿腺,就可能導(dǎo)致部分?jǐn)?shù)據(jù)丟失,為了避免這種情況丛楚,我們推薦使用 with 這種方式來打開文件族壳,使用 with 即不管是程序在完成對文件寫入操作之后還是程序?qū)懭胛募惓=K止都會自動調(diào)用 close 方法來關(guān)閉文件
<img src="http://python.tedu.cn/upload/20190515/20190515105103_772.png" alt="零基礎(chǔ)python教程"/>
如果重復(fù)對一個文件寫入內(nèi)容,會不會對已經(jīng)存在的內(nèi)容有影響呢趣些,答案是會的仿荆。
python 的文件寫模式分覆蓋寫和追加寫。剛剛上面提到的 ‘w’ 模式就是覆蓋寫喧务,即每次以 ‘w’ 模式打開文件都會先直接清空該文件赖歌,注意是只要一打開就會先清空即使你不寫入任何內(nèi)容。還有一種就是使用 ‘a(chǎn)’ 追加模式功茴,這種模式不會清空文件中原有的內(nèi)容庐冯,只會在原有內(nèi)容后面繼續(xù)追加新的內(nèi)容。
2坎穿、python 讀文件
<img src="http://python.tedu.cn/upload/20190515/20190515105210_966.png" alt="零基礎(chǔ)Python教程"/>
讀文件和寫文件類似展父,只不過是以讀的模式打開文件,open(‘xxx.txt’,’r’)玲昧,’r’ 表示以只讀模式打開文件栖茉,讀模式打開文件需要確認(rèn)文件已經(jīng)存在,如果文件不存在程序會報找不到文件的錯誤孵延。
如果文件打開成功吕漂,接下來會調(diào)用 read 方法來一次性把文件的所有內(nèi)容讀到內(nèi)存當(dāng)中,最后再需要調(diào)用 close 來關(guān)閉文件尘应。文件的讀寫操作完成之后都需要關(guān)閉文件惶凝,不然一直打開的文件會占用系統(tǒng)資源。
同樣的犬钢,由于文件的讀寫過程中可能會出現(xiàn)異常苍鲜,導(dǎo)致不能執(zhí)行后面的 close 方法來關(guān)閉文件,所以跟上面提到的文件的寫入一樣玷犹,我們也推薦使用 with 來打開文件混滔,總之,對于文件的讀寫操作歹颓,都推薦使用 with 方式來打開坯屿。
<img src="http://python.tedu.cn/upload/20190515/20190515105250_930.png" alt="零基礎(chǔ)Python教程"/>
如果一個文件很大,有幾十個 G 巍扛,那么把所有的內(nèi)容一次性讀到內(nèi)存中肯定不現(xiàn)實愿伴,這時候我們可以循環(huán)讀文件,每次只讀指定大小的內(nèi)容电湘,read(size) 表示只讀取 size 字節(jié)的數(shù)據(jù)隔节。
<img src="http://python.tedu.cn/upload/20190515/20190515105400_549.png" alt="零基礎(chǔ)python教程"/>
也有的文件內(nèi)容是按行寫入的鹅经,比如常見的 config 配置文件,我們還可以使用 readline() 可以按行來讀取內(nèi)容怎诫,也可以把文件所有內(nèi)容先按行讀取最后放到一個數(shù)組 list 中返回瘾晃。
<img src="http://python.tedu.cn/upload/20190515/20190515105447_43.png" alt="零基礎(chǔ)python教程"/>
實際上不同的文件會有不同的編碼格式,上面我們講的都是基于 utf-8 編碼格式的文件幻妓,如果要打開非 utf-8 的文件蹦误,還需要使用 open(‘xxx.txt’,’r’,encoding=’gbk’) 這種方式來指定文件的編碼。
3肉津、二進(jìn)制文件讀寫
我們上面講的都是默認(rèn)的文本文件强胰,還有常見的圖片、音視頻等二進(jìn)制文件怎么用 python 讀寫呢妹沙,其實只需要使用 ‘rb’ 和 ‘wb’ 這兩種模式就可以對二進(jìn)制文件進(jìn)行讀寫了偶洋。
<img src="http://python.tedu.cn/upload/20190515/20190515105528_825.png" alt="零基礎(chǔ)Python教程"/>
以上就是小編今天為大家分享的關(guān)于如何使用python讀寫文件的文章,希望本篇文章能夠?qū)φ?b>python學(xué)習(xí)和從事python相關(guān)工作的小伙伴們有所幫助距糖,想要了解更多相關(guān)知識記得關(guān)注馬哥教育官網(wǎng)玄窝。最后祝愿小伙伴們工作順利!
免責(zé)聲明:內(nèi)容和圖片源自網(wǎng)絡(luò)悍引,版權(quán)歸原作者所有恩脂,如有侵犯您的原創(chuàng)版權(quán)請告知,我們將盡快刪除相關(guān)內(nèi)容趣斤。