Python Programming/Progress Bars

Progress bars in Python are abundant. There are several well-known packages for progress bars out there.

External Progress Bars

edit

Some of the top bars are from the progress and the tqdm library.

Progress

edit
progress
Easy to use progress bars
PyPi Linkhttps://pypi.python.org/pypi/progress
Pip commandpip install progress
Import commandimport progress.bar or import progress.spinner

The progress module provides 7 different progress bars to use. They are:

  • Bar
  • ChargingBar
  • FillingSquaresBar
  • FillingCirclesBar
  • IncrementalBar
  • PixelBar
  • ShadyBar

The module also provides 6 spinners. These do not have a finish. They are:

  • Spinner
  • PieSpinner
  • MoonSpinner
  • LineSpinner
  • PixelSpinner

In order to access a bar/spinner, you run progress.a.b, where a is the type of indicator you want (bar or spinner) and b is the name of the bar/spinner. Furthermore, you have to import the module as progress.a or else it cannot see the bar/spinner.

Example code

edit
import progress.bar
import time

b = progress.bar.Bar('Waiting', max = 100)

for i in range(100):
    b.next()
    time.sleep(0.1)
    
b.finish()

We can also make it an iterator so we can put it into a for loop.

from __future__ import print_function
import progress.bar
import time

b = progress.bar.Bar('Printing', max = 26)
letters = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z']

for letter in b.iter(letters):
    print(letter)
    time.sleep(0.1)
    
b.finish()

Tqdm

edit
tqdm
Fast, Extensible Progress Meter
PyPi Linkhttps://pypi.python.org/pypi/tqdm
Pip commandpip install tqdm

The tqdm module relies off of one main class, the tqdm class. It has a GUI version, and a jupyter notebook-compatible version, and one for pandas. It will run as an iterator, a callable bar, and an action in a with statement.

Basic Code

edit
from tqdm import tqdm

adder = 1
sum = 0

for i in tqdm(range(100)):
    sum += adder