[英]Python print to same line during loop
我有以下循環,每次循環后都會打印一個周期:
for i in range(3):
time.sleep(1)
print('.')
這完全按照預期運行:以1秒為增量在新行上將一個周期打印到終端上
. # after 1 seconds
. # after 2 seconds
. # after 3 seconds
我想將輸出更改為將打印期間更改為同一行(因此輸出更緊湊且更易於閱讀)。 但是,當我將代碼更改為以下代碼時,我遇到了問題:
for i in range(3):
time.sleep(1)
print('.', end='')
在這種情況下,單行的句點僅在for循環完成時一次全部打印:
... # all after 3 seconds
我在這里做錯了什么還是python print
語句有限制?
默認情況下,在打印換行符之前,終端輸出不會出現。
您可以通過在打印調用中添加flush=True
來強制部分行立即顯示。
在這里,這將幫助您:
import time
for i in range(3):
time.sleep(1)
print(".", end="", flush=True)
print("")
編輯
如果您使用的是python2,請確保添加
from __future__ import print_function
作為腳本的第一條語句。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.