tqdm教程

tqdm是python中打印进度条的一个简易工具包,可以方便查看循环的进度。具体见tqdm文档

1. 搭配迭代器使用

from tqdm import tqdm
for i in tqdm(range(10000)):
    pass

tqdm的构造函数为:

tqdm(iterable=None, desc=None, total=None, leave=True, file=None, 
	 ncols=None, mininterval=0.1, maxinterval=10.0, miniters=None, 
	 ascii=None, disable=False, unit='it', unit_scale=False, 
	 dynamic_ncols=False, smoothing=0.3, bar_format=None, initial=0, 
	 position=None, postfix=None, unit_divisor=1000, write_bytes=None, 
	 lock_args=None, nrows=None, gui=False, **kwargs)
  • iterable: 迭代器
  • desc: 进度条前缀
  • total: 设置steps, 默认len(iterable)
  • leave: 结束时是否保留进度条,默认True
  • file: 设置在哪里打印进度,默认sys.stderr. 可用file.write(str)file.flush() 来写入文件。
  • ncols: 设置进度条的宽度。如果指定则会动态调整去适应该宽度,如果不指定则会适配terminal的最大宽度,可能造成换行。后面的计数和统计不限宽,如果设为0,则只打印计数和统计信息不显示进度条。(一般设置为70左右比较合适)
  • mininterval: 最小更新间隔,默认0.1s
  • maxinteravl: 最大更新间隔,默认10s
  • miniters: 最小更新间隔,默认10个iteration
  • ascii: 进度条的编码方式
  • position: 进度条打印间隔行数,默认0。一般用于嵌套的进度条。

2. 设置动态数据打印

t = tqdm(range(10), ncols=70)
for i in t:
	t.set_description(f"hello: {i:0>3}")

3. 中途打印不干扰进度条

t = tqdm(range(10), ncols=70)
for i in t:
	t.set_description(f"hello: {i:0>3}")
	t.write(f"{i}")  # 使用t.write代替print

4. 在jupyter中打印不干扰进度条

from tqdm import tqdm_notebook as tqdm

for i in tqdm(range(10)):
 	print(i)

5. 使用gui显示进度条

from tqdm.gui import tqdm as tqdm_gui
t = tqdm_gui(range(100), ncols=50)
for i in t:
	t.set_description(f"hello: {i:0>3}")

你可能感兴趣的:(python)