Search code examples
pythonanimationcommand

'Waiting' animation in command prompt (Python)


I have a Python script which takes a long time to run. I'd quite like to have the command line output to have a little 'waiting' animation, much like the swirly circle we get in browsers for AJAX requests. Something like an output of a '\', then this is replaced by a '|', then '/', then '-', '|', etc, like the text is going round in circles. I am not sure how to replace the previous printed text in Python.


Solution

  • Use \r and print-without-newline (that is, suffix with a comma):

    animation = "|/-\\"
    idx = 0
    while thing_not_complete():
        print(animation[idx % len(animation)], end="\r")
        idx += 1
        time.sleep(0.1)
    

    For Python 2, use this print syntax:

    print animation[idx % len(animation)] + "\r",