0

Well I have this progress bar:

import time
import sys
def prog():
    for i in range(21):
        sys.stdout.write('\r')
        sys.stdout.write("Progress [%-20s] %d%%" % ('='*i, 5*i))
        sys.stdout.flush()
        time.sleep(0.1)

And while I execute some other code, this progress bar is supposed to load and finish when the work is done. Well I know exactly how many seconds it takes for my code to finish it's job so I can adapt the time.sleep() accordingly.

What I expect is to execute this function with some command and don't wait for it to finish. Maybe the subprocess module has something like that.

Please help me with an example for executing this function and then doing this:

print ("Test")
time.sleep(1)

for like five times, so I can see that while the progressbar is loading, "Test" is going to be printed every 1 second.

Angelo Catana
  • 27
  • 2
  • 6
  • You'd probably want to use the `threading` which would allow at least the simulation of two parts of you code running at the same time. Actually actually happening is prevented most of time by the Global Interpreter Lock aka the GIL. Using `subprocess` would mean the "some code" would need to be executed by a separate python interpreter process, and communications with it would be relatively limited as compared to what threads can do because they're all "running" within the same one. – martineau Nov 16 '18 at 19:15
  • Also see answer to [Python Progress Bar - Is Threading the Answer Here?](https://stackoverflow.com/questions/15391467/python-progress-bar-is-threading-the-answer-here) – martineau Nov 16 '18 at 19:22
  • Have a read [here](https://docs.python.org/3/library/concurrency.html) – roeen30 Nov 16 '18 at 19:27

0 Answers0