淺談python寫入大量文件的問題
今天準(zhǔn)備把幾個txt文件合并成一個文件時,用f.write方法寫入時,發(fā)現(xiàn)程序執(zhí)行完了,本應(yīng)該十萬行左右的txt記錄,實際上只被寫入了4k多行。
網(wǎng)上查了是因為程序執(zhí)行速度太快,以至于讀到內(nèi)容還沒有完全寫入文件,文件就已經(jīng)關(guān)閉了
方法一:加入緩沖區(qū)
f.flush() //operation os.fsync(output) f.close()
打開文件后執(zhí)行flush(),關(guān)閉文件前執(zhí)行os.fsync()確保緩沖區(qū)的內(nèi)容都寫出去了。
方法二:用sleep
用了上述方法不行,因為我在打開文件后用了迭代輸出,可能會讓緩沖區(qū)爆炸,在循環(huán)中加入sleep函數(shù)可以確保每次循環(huán)都能將內(nèi)容寫入
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()
后來發(fā)現(xiàn):
txt文件如果太大,在pycharm中只會顯示一小部分,可能是指顯示了部分文件導(dǎo)致未以為文件沒寫進(jìn)去,fuck
以上這篇淺談python寫入大量文件的問題就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Pytorch卷積神經(jīng)網(wǎng)絡(luò)遷移學(xué)習(xí)的目標(biāo)及好處
這篇文章主要為大家介紹了Pytorch卷積神經(jīng)網(wǎng)絡(luò)遷移學(xué)習(xí)的目標(biāo)實現(xiàn)代碼及好處介紹,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-05-05django之導(dǎo)入并執(zhí)行自定義的函數(shù)模塊圖解
這篇文章主要介紹了django之導(dǎo)入并執(zhí)行自定義的函數(shù)模塊圖解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-04-04淺談Python中chr、unichr、ord字符函數(shù)之間的對比
chr、unichr、ord在Python中都可以被用作字符類型轉(zhuǎn)換,這里我們就來淺談Python中chr、unichr、ord字符函數(shù)之間的對比,需要的朋友可以參考下2016-06-06Python2.7版os.path.isdir中文路徑返回false的解決方法
這篇文章主要為大家詳細(xì)介紹了Python2.7版os.path.isdir中文路徑返回false的解決方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下2019-06-06