Dica 24 - Barra de progresso
PreviousDica 23 - Diferença entre JSON dump, dumps, load e loadsNextDica 25 - Rodando Shell script dentro do Python
Last updated
Was this helpful?
Last updated
Was this helpful?
-
Leia mais em
pip install progress
# example01_progress.py
from time import sleep
from progress.bar import Bar
with Bar('Processing...') as bar:
for i in range(100):
sleep(0.02)
bar.next()
$ python example01_progress.py
pip install tqdm
from time import sleep
# example02_tqdm.py
from tqdm import tqdm
for i in tqdm(range(100)):
sleep(0.02)
# Do something
python example02_tqdm.py
pip install click
from time import sleep
# example03_click.py
import click
# Fill character is # by default, you can change it
# for any other char you want, or even change the color.
fill_char = click.style('=', fg='yellow')
with click.progressbar(range(100), label='Loading...', fill_char=fill_char) as bar:
for i in bar:
sleep(0.02)
python example03_click.py
pip install progressbar2
# example04_progressbar2.py
from time import sleep
from progressbar import progressbar
for i in progressbar(range(100)):
sleep(0.02)
python example04_progressbar2.py
pip install clint
# example05_clint.py
from time import sleep
from clint.textui import progress
print('Clint - Regular Progress Bar')
for i in progress.bar(range(100)):
sleep(0.02)
print('Clint - Mill Progress Bar')
for i in progress.mill(range(100)):
sleep(0.02)
python example05_clint.py
import sys
# example06_sys.py
import time
toolbar_width = 40
# setup toolbar
sys.stdout.write("[%s]" % (" " * toolbar_width))
sys.stdout.flush()
sys.stdout.write("\b" * (toolbar_width+1)) # return to start of line, after '['
for i in range(toolbar_width):
time.sleep(0.1) # do real work here
# update the bar
sys.stdout.write("-")
sys.stdout.flush()
sys.stdout.write("]\n") # this ends the progress bar
python example06_sys.py
# example07_sys.py
import sys
import time
def progressbar(it, prefix="", size=60, file=sys.stdout):
count = len(it)
def show(j):
x = int(size * j / count)
file.write("%s[%s%s] %i/%i\r" %
(prefix, "#" * x, "." * (size - x), j, count))
file.flush()
show(0)
for i, item in enumerate(it):
yield item
show(i + 1)
file.write("\n")
file.flush()
users = ['Regis', 'Abel', 'Eduardo', 'Elaine']
for user in progressbar(users, "Processing: "):
time.sleep(0.1)
# Do something.
for i in progressbar(range(42), "Processing: "):
time.sleep(0.05)
# Do something.
python example07_sys.py
$ jupyter notebook
# progressbar_jupyter.ipynb
import sys
if hasattr(sys.modules["__main__"], "get_ipython"):
from tqdm import notebook as tqdm
else:
import tqdm
from time import sleep
n = 0
for i in tqdm.trange(100):
n += 1
sleep(0.01)
url = "https://www.python.org/ftp/python/3.9.0/Python-3.9.0.tgz"
import httpx
with httpx.stream("GET", url) as response:
total = int(response.headers["Content-Length"])
with tqdm.tqdm(total=total) as progress:
for chunk in response.iter_bytes():
progress.update(len(chunk))