我一直在研究这个问题,似乎有可能,但在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)
我如何解决这个问题?
答案 0 :(得分:2)
问题在于缓冲:脚本结束时,所有内容都会立即出现。你可以force Python >3.3 to flush after each print output:
import time
print("Loading", end="", flush=True)
for x in range(0,5):
print(".", end="", flush=True)
time.sleep(.2)
当然,加载栏可能看起来很酷,但是只是浪费时间睡觉的假装不会让用户满意。如果您的计划确实在开展业务,请查看threading或subprocess。
<小时/> 你最初的想法对我有用(Win7 64位上的Python 3.4):
import time
for x in range(0,5):
print("Loading" + "."*x, end="\r", flush=True)
time.sleep(.2)