How to better control print and stdout?

Jeff Epler jepler at unpythonic.net
Fri Mar 14 18:24:39 EST 2003


You need to call the flush method on sys.stdout, or set it unbuffered.
In my example, I also use sys.stdout.write instead of print, and \r to move
the cursor back to the beginning of the line.  but sys.stdout.flush() is
the key.

Jeff

import time, sys
def spinner(rotations, interval):
    for i in range(rotations):
        sys.stdout.write("|/-\\"[i % 4] + "\r"); sys.stdout.flush()
        time.sleep(interval)
    sys.stdout.write("\b\b"); sys.stdout.flush()





More information about the Python-list mailing list