tqdm是一款新的进度条, tqdm 库比较热门,据说比老版的 python-progressbar 库的单次响应时间提高了 10 倍以上。
progressbar 的原理
其实进度条的原理十分的简单,无非就是在 shell 中不断重写当前输出。
Bash 实现

#/usr/bin/bash
for i in {1..100};
do
    echo -ne "$i% \r"
    sleep 0.01
done
echo -ne "\n"

echo -n 存在明显的兼容性问题。使用 printf

#/usr/bin/bash
for i in {1..100};
do
    printf "%s%% \r" $i
    sleep 0.01
done
printf "\n"

Python 实现
Python 主要使用系统库里的标准输出,sys.stdout 提供了便利的方法用于向 shell 打印输出。具体的方法介绍这里不赘述。

import sys
import time

for i in range(100):
    sys.stdout.write('\r')
    sys.stdout.flush()
    sys.stdout.write('{}%\r'.format(i))
    sys.stdout.flush()
    time.sleep(0.01)
>>> from time import sleep
>>> from tqdm import tqdm
>>> for i in tqdm(range(1000)):
...     sleep(0.01)

Python第三方进度条库tqdm

from tqdm import tqdm

pbar = tqdm(range(300))#进度条

for i in pbar:
    err = 'abc'
    pbar.set_description("Reconstruction loss: %s" %(err))

Python第三方进度条库tqdm

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-12-28
  • 2021-06-14
  • 2021-10-30
猜你喜欢
  • 2021-06-27
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-12-14
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案