替换以前在shell-Windows中打印的文本



我一直在研究这个问题,它似乎是可能的,但在Windows上不可能。

我正在尝试实现一个加载栏,它将打印"正在加载",然后打印"正在装载"正在加载..'。。。等

这段代码似乎适用于Linux,但不适用于Windows(Python 3.5):

x = 0
for x in range (0,5):
    #x = x + 1
    b = "Loading" + "." * x
    print (b, end="r")
    time.sleep(1)

我该如何解决这个问题?

问题在于缓冲:当脚本结束时,所有内容都会同时出现。您可以强制Python>3.3在每次打印输出后刷新:

import time
print("Loading", end="", flush=True)
for x in range(0,5):
  print(".", end="", flush=True)
  time.sleep(.2)

当然,一个加载条可能看起来很酷,但一个浪费时间睡觉的假加载条不会让用户高兴。如果您的程序真的在做业务,请查看线程或子流程。


你最初的想法也适用于我(Win7 64位上的Python 3.4):

import time
for x in range(0,5):
  print("Loading" + "."*x, end="r", flush=True)
  time.sleep(.2)

最新更新