淺談python寫(xiě)入大量文件的問(wèn)題
今天準(zhǔn)備把幾個(gè)txt文件合并成一個(gè)文件時(shí),用f.write方法寫(xiě)入時(shí),發(fā)現(xiàn)程序執(zhí)行完了,本應(yīng)該十萬(wàn)行左右的txt記錄,實(shí)際上只被寫(xiě)入了4k多行。
網(wǎng)上查了是因?yàn)槌绦驁?zhí)行速度太快,以至于讀到內(nèi)容還沒(méi)有完全寫(xiě)入文件,文件就已經(jīng)關(guān)閉了
方法一:加入緩沖區(qū)
f.flush() //operation os.fsync(output) f.close()
打開(kāi)文件后執(zhí)行flush(),關(guān)閉文件前執(zhí)行os.fsync()確保緩沖區(qū)的內(nèi)容都寫(xiě)出去了。
方法二:用sleep
用了上述方法不行,因?yàn)槲以诖蜷_(kāi)文件后用了迭代輸出,可能會(huì)讓緩沖區(qū)爆炸,在循環(huán)中加入sleep函數(shù)可以確保每次循環(huán)都能將內(nèi)容寫(xiě)入
with open(outputfile,'a') as output: for i in all_txt_name: f =open(dir+'/'+i) for a in f: output.write(a) time.sleep(0.00000001) f.close()
后來(lái)發(fā)現(xiàn):
txt文件如果太大,在pycharm中只會(huì)顯示一小部分,可能是指顯示了部分文件導(dǎo)致未以為文件沒(méi)寫(xiě)進(jìn)去,fuck
以上這篇淺談python寫(xiě)入大量文件的問(wèn)題就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Pytorch卷積神經(jīng)網(wǎng)絡(luò)遷移學(xué)習(xí)的目標(biāo)及好處
這篇文章主要為大家介紹了Pytorch卷積神經(jīng)網(wǎng)絡(luò)遷移學(xué)習(xí)的目標(biāo)實(shí)現(xiàn)代碼及好處介紹,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-05-05django之導(dǎo)入并執(zhí)行自定義的函數(shù)模塊圖解
這篇文章主要介紹了django之導(dǎo)入并執(zhí)行自定義的函數(shù)模塊圖解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-04-04淺談Python中chr、unichr、ord字符函數(shù)之間的對(duì)比
chr、unichr、ord在Python中都可以被用作字符類型轉(zhuǎn)換,這里我們就來(lái)淺談Python中chr、unichr、ord字符函數(shù)之間的對(duì)比,需要的朋友可以參考下2016-06-06python模塊之sys模塊和序列化模塊(實(shí)例講解)
下面小編就為大家?guī)?lái)一篇python模塊之sys模塊和序列化模塊(實(shí)例講解)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-09-09Python 使用with上下文實(shí)現(xiàn)計(jì)時(shí)功能
with 語(yǔ)句適用于對(duì)資源進(jìn)行訪問(wèn)的場(chǎng)合,確保不管使用過(guò)程中是否發(fā)生異常都會(huì)執(zhí)行必要的“清理”操作,釋放資源,比如文件使用后自動(dòng)關(guān)閉、線程中鎖的自動(dòng)獲取和釋放等。這篇文章主要介紹了Python 使用with上下文實(shí)現(xiàn)計(jì)時(shí),需要的朋友可以參考下2018-03-03Python2.7版os.path.isdir中文路徑返回false的解決方法
這篇文章主要為大家詳細(xì)介紹了Python2.7版os.path.isdir中文路徑返回false的解決方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-06-06Python實(shí)現(xiàn)的tcp端口檢測(cè)操作示例
這篇文章主要介紹了Python實(shí)現(xiàn)的tcp端口檢測(cè)操作,結(jié)合實(shí)例形式分析了Python使用socket模塊實(shí)現(xiàn)tcp端口檢測(cè)功能的相關(guān)操作技巧,需要的朋友可以參考下2018-07-07Python Scrapy框架第一個(gè)入門(mén)程序示例
這篇文章主要介紹了Python Scrapy框架第一個(gè)入門(mén)程序,結(jié)合實(shí)例形式分析了Python Scrapy框架項(xiàng)目的搭建、抓取字段設(shè)置、數(shù)據(jù)庫(kù)保存等相關(guān)操作技巧,需要的朋友可以參考下2020-02-02