tqdm 不可用时的简单回退进度条

Simple fallback progressbar when tqdm is not available

我有一个使用 tqdm 进度条的 python 包。但是,我不希望这成为我的包的用户的硬依赖。如果未安装 tqdm,是否有一些简单的嵌入式解决方案可以轻松充当备用解决方案?

我正在使用tqdm.tqdm()totalleave属性,以及updateclose的方法tqdm.tqdm实例。

当然可以。

def noobar(itrble, desc):
  """Simple progress bar. To be used if tqdm not installed."""
  L  = len(itrble)
  print('{}: {: >2d}'.format(desc,0), end='')
  for k,i in enumerate(itrble):
    yield i
    p = (k+1)/L
    e = '' if k<(L-1) else '\n'
    print('\b\b\b\b {: >2d}%'.format(int(100*p)), end=e)
    sys.stdout.flush()

试试

from time import sleep
for i in noobar(range(5),"my work"):
  sleep(1)