Progress Bars in Python

Understandably, we get a little impatient when we do not know how much time a process is going to take, for example, a for loop or a file downloading or an application starting up.

To distract us from that we were given the libraries tqdm and progressbar in Python language which allows us to give a visual illustration of the process completion time using a progress bar. Loading bars are often seen on game screens as the resources required for the game to run are being acquired to the main memory.

Using tqdm

What It Does

It wraps an iterable with the tqdm to decorate it with the methods built-in with tqdm and make a loading bar. This will take the users’ mind off of how long the process is taking to complete.

How To Use

All we need to do is, install the tqdm package by typing this line in your terminal and start writing the code.



->pip install tqdm

And type this code in your editor.

filter_none

edit
close

play_arrow

link
brightness_4
code

from tqdm import tqdm
  
for i in tqdm (range (100), desc="Loading..."):
    pass

chevron_right


Output:

python-tqdm1

This gives a very fast loading bar because there’s nothing in the loop., you can replace the pass keyword with whatever work you want to do in the for loop.

filter_none

edit
close

play_arrow

link
brightness_4
code

from tqdm import tqdm
import time
  
  
for i in tqdm (range (101), 
               desc="Loading…"
               ascii=False, ncols=75):
    time.sleep(0.01)
      
print("Complete.")

chevron_right


Output:

python-tqdm-2

Using progressbar

How To Install

For command-line interface

pip install progressbar 
(or)
pip install progressbar2

Working

It does everything the same as tqdm package, that is it decorates the iterable with the built-in widgets to make an animated progress bar or even a colorful one. Widgets are objects which display depending on the progress bar.

However, the progress bar and the progress bar 2 packages have a lot of extra, useful methods than the tqdm package. For example, we can make an animated loading bar.

filter_none

edit
close

play_arrow

link
brightness_4
code

import progressbar
import time
  
  
# Function to create 
def animated_marker():
      
    widgets = ['Loading: ', progressbar.AnimatedMarker()]
    bar = progressbar.ProgressBar(widgets=widgets).start()
      
    for i in range(50):
        time.sleep(0.1)
        bar.update(i)
          
# Driver's code
animated_marker()

chevron_right


Output:

In progressbar.AnimatedMarker(), we can pass any sequence of characters to animate. The default arguments are '|/-\|'

Here’s another example using some of the commonly used widgets of the ProgressBar class.

filter_none

edit
close

play_arrow

link
brightness_4
code

import time
import progressbar
  
widgets = [' [',
         progressbar.Timer(format= 'elapsed time: %(elapsed)s'),
         '] ',
           progressbar.Bar('*'),' (',
           progressbar.ETA(), ') ',
          ]
  
bar = progressbar.ProgressBar(max_value=200
                              widgets=widgets).start()
  
for i in range(200):
    time.sleep(0.1)
    bar.update(i)

chevron_right


Output:
python-progressbar




My Personal Notes arrow_drop_up

Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.



Improved By : Akanksha_Rai

Article Tags :

1


Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.