我想將資料直接流式傳輸到磁盤。
一種方法是簡單地讀取資料并寫入檔案,但我也想最小化 RAM 使用量。
with open("dummy.source", "br") as out, open("dummy.copy", "bw") as in_:
in_.write(out.read()) # this causes reading the whole stream into memory
我想出了一些手動的方法:
with open("dummy.source", "br") as out, open("dummy.copy", "bw") as in_:
while b := out.read(BUFFER_SIZE):
in_.write(b)
我真的必須逐部分手動加載流嗎?如果是這樣,我如何確定 的最佳值BUFFER_SIZE?
uj5u.com熱心網友回復:
緩沖區大小的最佳值很可能是 python 已經保留的緩沖區的大小,8192在大多數系統上是位元組,但低于該值的任何值都可以,因為無論如何 IO 都會被 python 緩沖。
您可以使用buffering引數來更改它,open但8192它是許多系統上的最佳大小。
您實際上可以通過使用從當前的 python 解釋器中獲取它
from io import DEFAULT_BUFFER_SIZE
這是為了以防將來更改或針對給定的 python 解釋器更改。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/520825.html
標籤:Python文件记忆溪流
