淺談python寫入大量文件的問題

發布時間: 2019-06-18 17:30:04 來源: 互聯網 欄目: python 點擊:

今天小編就為大家分享一篇淺談python寫入大量文件的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

今天準備把幾個txt文件合并成一個文件時,用f.write方法寫入時,發現程序執行完了,本應該十萬行左右的txt記錄,實際上只被寫入了4k多行。

網上查了是因為程序執行速度太快,以至于讀到內容還沒有完全寫入文件,文件就已經關閉了

方法一:加入緩沖區

f.flush()
//operation
os.fsync(output)
f.close() 

打開文件后執行flush(),關閉文件前執行os.fsync()確保緩沖區的內容都寫出去了。

方法二:用sleep

用了上述方法不行,因為我在打開文件后用了迭代輸出,可能會讓緩沖區爆炸,在循環中加入sleep函數可以確保每次循環都能將內容寫入

 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()

后來發現:

txt文件如果太大,在pycharm中只會顯示一小部分,可能是指顯示了部分文件導致未以為文件沒寫進去,fuck

以上這篇淺談python寫入大量文件的問題就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持我們。

本文標題: 淺談python寫入大量文件的問題
本文地址: http://www.leskzw.tw/jiaoben/python/244044.html

如果認為本文對您有所幫助請贊助本站

支付寶掃一掃贊助微信掃一掃贊助

  • 支付寶掃一掃贊助
  • 微信掃一掃贊助
  • 支付寶先領紅包再贊助
    聲明:凡注明"本站原創"的所有文字圖片等資料,版權均屬編程客棧所有,歡迎轉載,但務請注明出處。
    Python創建一個空的dataframe,并循環賦值的方法Django中的forms組件實例詳解
    Top 广东好彩1中奖规则