当我跑步时,例如:
print("[",end=" ")
time.sleep(1)
print("=",end=" ")
time.sleep(1)
print("=",end=" ")
time.sleep(1)
print("=",end=" ")
time.sleep(1)
print("=",end=" ")
time.sleep(1)
print("=",end=" ")
time.sleep(1)
print("=",end=" ")
time.sleep(1)
print("=",end=" ")
time.sleep(1)
print("=",end=" ")
time.sleep(1)
print("=",end=" ")
time.sleep(1)
print("=",end=" ")
time.sleep(1)
print("]",end=" ")
10秒内没有任何事情发生,然后出现整个[= = = = = = = = = =]。我怎样才能阻止它,以便它可以作为一种进度条呢?
答案 0 :(得分:5)
每次打印后尝试刷新标准输出:
import sys
print("=",end=" ")
sys.stdout.flush()
答案 1 :(得分:3)
实际上,进度条属于sys.stderr
,它是(非常方便,根本不是巧合)未缓冲的。所以我建议你:
print("=", end=" ", file=sys.stderr)
代替。
PS维基百科中可以找到符合POSIX标准的操作系统中标准输入,输出和错误流的概要:Standard streams。 简而言之:stdin是进程的输入; stdout是一个过程的有用输出,结果; stderr用于警告,错误和带外(例如进度条)输出。
答案 2 :(得分:0)
答案 3 :(得分:0)
每次要编写更新时,都需要使用stdout
刷新sys.stdout.flush()
。