看板 Python 關於我們 聯絡資訊
各位版友好, 我在ubuntu環境裡寫了一支程式,目的是把int的範圍和其他字串一起寫入文檔, 但在執行時卻發現非常吃資源...請問可以怎麼修改讓程式不會吃這麼多資源呢...? def start_write() for i in xrange(-2147483648,2147483648) fw.write("第一行:"+第一行+"\n") fw.write("第二行:"+第二行+"\n") fw.write("第三行:"+str(i)+"\n") fw.write("第四行:"+第四行+"\n") fw.write("\n") raw_input第一行 raw_input第二行 raw_input第四行 fw=open(檔案,'a') start_write() fw.close() -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.137.100.192 ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1485412347.A.694.html
Neisseria: 如果先將字串接好,再一次寫入檔案,會比較好嗎?01/26 15:04
寫入的行數會影響嗎?
swpoker: xrange(-2147483648,2147483648) 太多啦 還是++就好啦01/26 15:14
請問用++跟用for的差別是? ※ 編輯: Dong0129 (114.137.100.192), 01/26/2017 15:27:29
tiefblau: 吃資源是指記憶體? CPU? 還是硬碟IO?01/26 15:27
好像是吃IO ※ 編輯: Dong0129 (114.137.100.192), 01/26/2017 15:32:01
aweimeow: 這個一定會很吃 IO 的吧 ~01/26 15:55
tiefblau: 寫入的量就是這麼多 硬碟IO怎麼省= = 我坐等大神開示01/26 16:05
一開始沒想到是吃IO,這樣看來應該沒得改了...謝謝 ※ 編輯: Dong0129 (114.137.100.192), 01/26/2017 16:22:07
ccvs: 換SSD01/26 17:44
s860134: 先把所有資料存到str後一次寫入速度會比較快01/26 17:49
bibo9901: 假設一個iter寫入100 bytes, 這個檔案有 400 GB 喔01/27 00:25
zerof: 這個 range 不可能一次寫入, 會 OOM01/27 00:38
對的...寫不完啊...
uranusjr: 雖然根本看不懂你想幹什麼, 但直覺告訴我你程式根本寫錯01/27 01:28
有成功寫出我要的東西,但一直把硬碟的IO資源吃掉,吃到寫不下去後跳出程式。 ※ 編輯: Dong0129 (1.169.137.27), 01/27/2017 02:47:58
shadowjohn: 吸到str每3000或5000筆寫一次 01/27 07:02
這想法好像不錯,感謝你的建議!
s860134: 其實大家都很好奇你到底要幹嘛拉XD 01/27 07:50
※ 編輯: Dong0129 (1.169.137.27), 01/27/2017 11:28:48