Open In App

Progress Bars in Python

Improve
Improve
Like Article
Like
Save
Share
Report

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. 

Python3




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


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. 

Python3




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


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. 

Python3




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()


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. 

Python3




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)


Output: python-progressbar

                        Using sys and time

Prerequisites:

  • Sys:

Functions and variables for modifying many elements of the Python runtime environment are available in the sys module.

The following code can be used to import this built-in module without having to install it first:

import sys
  • Time:

Accessing time in Python is made possible by the time module. It has capabilities like the ability to delay the execution of the application and the ability to get the current date and time. This module needs to be imported before we can start using its features.

This is an in-built module and need not be installed, it can be imported directly using the code:

import time
  • Random:

Python comes with a built-in module called Python Random that may be used to create random integers. Since they are not completely random, these numbers are pseudo-random. This module may be utilized to carry out random operations like generating random integers, printing a random value for a list or string, etc.

It is not necessary to install this built-in module because it may be imported directly using the following code:

import random

Code:

Python3




import sys,time,random
def progressBar(count_value, total, suffix=''):
    bar_length = 100
    filled_up_Length = int(round(bar_length* count_value / float(total)))
    percentage = round(100.0 * count_value/float(total),1)
    bar = '=' * filled_up_Length + '-' * (bar_length - filled_up_Length)
    sys.stdout.write('[%s] %s%s ...%s\r' %(bar, percentage, '%', suffix))
    sys.stdout.flush()
for i in range(11):
    time.sleep(random.random())
    progressBar(i,10)
#This code is Contributed by PL VISHNUPPRIYAN


Output:

Output in Terminal Window



Last Updated : 10 Jan, 2023
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads