簡體   English   中英

Python在循環期間打印到同一行

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM