![](/img/trans.png)
[英]Python3: print(somestring,end='\r', flush=True) shows nothing
[英]Why doesn't python3's print statement flush output when end keyword is specified?
from sys import argv, stdout as cout
from time import sleep as sl
print("Rewinding.......",end = '') # If end is given output isn't flushed. But why?
cout.flush()
for i in range(0,20):
sl(0.2)
print(".",end='',flush = True) #No output is printed if flush wasn't specified as true.
print("Done") #Output is by default flushed here
當我指定結束和睡眠時,我注意到 output 直到下一次打印才被刷新,默認情況下它是被刷新的。
為什么會這樣? 我不得不手動沖洗 output。
實際上,這是基礎stdio
函數的默認行為。
當輸出到控制台時,遇到換行符時將自動刷新流,但不會遇到其他字符。
如果輸出不是控制台,那么即使換行也不會觸發刷新。
如果要確保刷新,可以顯式告訴print()
:
print("Rewinding.......",end = '',flush=True)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.