Python how to make simple animated loading while process is running
python
Solution
Use a thread:
import itertools
import threading
import time
import sys
done = False
#here is the animation
def animate():
for c in itertools.cycle(['|', '/', '-', '\\']):
if done:
break
sys.stdout.write('\rloading ' + c)
sys.stdout.flush()
time.sleep(0.1)
sys.stdout.write('\rDone! ')
t = threading.Thread(target=animate)
t.start()
#long process here
time.sleep(10)
done = True
I also made a couple of minor modifications to your `animate()` function, the only really important one was adding `sys.stdout.flush()` after the `sys.stdout.write()` calls.
Problem
This is pretty much what I have right now: ``` import time import sys done = 'false' #here is the animation def animate(): while done == 'false': sys.stdout.write('\rloading |') time.sleep(0.1) sys.stdout.write('\rloading /') time.sleep(0.1) sys.stdout.write('\rloading -') time.sleep(0.1) sys.stdout.write('\rloading \\') time.sleep(0.1) sys.stdout.write('\rDone! ') animate() #long process here done = 'false' ``` and I want to get it so that the "while" script would function independently, and it continues to the process, while the animation is going on until the end of the process signals the variable "done" to be 'false', stopping the animation and replacing it with "Done!". This method would be essentially running two scripts at once; is there a way to do it?