Skip to content

Instantly share code, notes, and snippets.

@junnplus
Created August 3, 2017 04:09
Show Gist options
  • Save junnplus/e6ce33dfa759c749b3da63ba0028347a to your computer and use it in GitHub Desktop.
Save junnplus/e6ce33dfa759c749b3da63ba0028347a to your computer and use it in GitHub Desktop.
to print a spin bar while a computation is running
import sys
import time
import multiprocessing
DELAY = 0.1
DISPLAY = ['|', '/', '-', '\\']
def spinner_func(before='', after=''):
write, flush = sys.stdout.write, sys.stdout.flush
pos = -1
while True:
pos = (pos + 1) % len(DISPLAY)
msg = before + DISPLAY[pos] + after
write(msg)
flush()
write('\x08' * len(msg))
time.sleep(DELAY)
def long_computation():
# emulate a long computation
time.sleep(3)
if __name__ == '__main__':
spinner = multiprocessing.Process(
None, spinner_func, args=('Please wait ... ', ''))
spinner.start()
try:
long_computation()
print 'Computation done'
finally:
spinner.terminate()
@junnplus
Copy link
Author

junnplus commented Aug 3, 2017

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment