3 回答

TA貢獻1851條經驗 獲得超3個贊
我認為您誤解了“刷新輸出緩沖區”的含義。我不會刪除以前打印的內容。它只是意味著“立即打印,無需等待整行(或文件價值)的輸出?!?/p>
刷新可能很重要的一個例子是當你在一行中打印出幾件事時,它們之間有一個延遲:
import time
for i in range(10):
print(i, end="")
time.sleep(1)
在許多控制臺上,這將在 10 秒內不打印任何內容,然后您會0123456789立即看到所有內容。但是如果你添加flush=True到print通話中,你會看到每個號碼分別出現,一個接一個,中間有一秒鐘的延遲。你仍然0123456789在一條線上,但它是逐漸建立起來的。(請注意,某些 IDE 中內置的控制臺可能不會以真實終端的正常方式進行行緩沖,因此您的里程可能會有所不同。真實控制臺更加一致。)
如果您打印的是末尾帶有換行符的整行(這是 的默認設置print),flush則沒有必要使用 usually,因為大多數終端都是行緩沖的。這意味著它們會在每一行的末尾自動刷新自己,即使flush=True在輸出后沒有明確要求刷新。

TA貢獻1830條經驗 獲得超9個贊
嘗試這個:
import time
for shard in range(3):
for i in range(100):
print("image_{} in shard_{}\r".format(i,shard),end = "")
time.sleep(1)
print()

TA貢獻2019條經驗 獲得超9個贊
嘗試:
for i in range(3):
print("{}\r".format(i), end="")
print("Hello\r", end="")
print("World\r", end="")
輸出將是World。