在python shell上创建一个闪烁的忙指示符

时间:2016-04-17 09:34:20

标签: python busyindicator

我希望在1秒的时间间隔内在命令行上使*闪烁。

import time
from sys import stdout

while True:
    stdout.write(' *')
    time.sleep(.5)
    stdout.write('\r  ')
    time.sleep(.5)

我得到的只是一个空行,没有闪烁*

为什么?

2 个答案:

答案 0 :(得分:6)

在这里查看讨论:How to overwrite the previous print to stdout in python?
以下代码适用于Windows 10上的IDLE环境和命令行:

import time

while True:
    print('*', end="\r")
    time.sleep(.5)
    print(' ', end="\r")
    time.sleep(.5)

答案 1 :(得分:5)

检查一下。这将以0.5秒的间隔在一行上打印*,并显示0.5秒(在您调用时闪烁)

import time

while True:
     print('*', flush=True, end='\r')
     time.sleep(0.5)
     print(' ', flush=True, end='\r')
     time.sleep(0.5)

请注意,这在IDLE中不起作用,但使用cmd可以正常工作。

不使用两个打印语句,您可以这样做:

import time

i = '*'
while True:
    print('{}\r'.format(i), end='')
    i = ' ' if i=='*' else '*'
    time.sleep(0.5)