Source From Here
Question
As title. How to draw a progress bar for long time execution task in command line mode?
How-To
For a hand-made version:
For a exist python package
tqdm: add a progress meter to your loops in a second:
Question
As title. How to draw a progress bar for long time execution task in command line mode?
How-To
For a hand-made version:
- # Print iterations progress
- def printProgressBar (iteration, total, prefix = '', suffix = '', decimals = 1, length = 100, fill = '█'):
- """
- Call in a loop to create terminal progress bar
- @params:
- iteration - Required : current iteration (Int)
- total - Required : total iterations (Int)
- prefix - Optional : prefix string (Str)
- suffix - Optional : suffix string (Str)
- decimals - Optional : positive number of decimals in percent complete (Int)
- length - Optional : character length of bar (Int)
- fill - Optional : bar fill character (Str)
- """
- percent = ("{0:." + str(decimals) + "f}").format(100 * (iteration / float(total)))
- filledLength = int(length * iteration // total)
- bar = fill * filledLength + '-' * (length - filledLength)
- print('\r%s |%s| %s%% %s' % (prefix, bar, percent, suffix), end = '\r')
- # Print New Line on Complete
- if iteration == total:
- print()
- #
- # Sample Usage
- #
- from time import sleep
- # A List of Items
- items = list(range(0, 57))
- l = len(items)
- # Initial call to print 0% progress
- printProgressBar(0, l, prefix = 'Progress:', suffix = 'Complete', length = 50)
- for i, item in enumerate(items):
- # Do stuff...
- sleep(0.1)
- # Update Progress Bar
- printProgressBar(i + 1, l, prefix = 'Progress:', suffix = 'Complete', length = 50)
- >>> import time
- >>> from tqdm import tqdm
- >>> for i in tqdm(range(100)):
- ... time.sleep(1)
- ...
- 27%|██████████████████████████████████ | 27/100 [00:36<01:18, 1.08s/it]