【问题标题】:ProgressBar same timing as a functionProgressBar 与函数计时相同
【发布时间】:2019-05-04 23:37:32
【问题描述】:

我希望进度条与函数的时间相同,启动时开始,完成时停止

我尝试使用 while 循环,但没有成功。

def clean(path):
    for path in paths:
        try:
            rmtree(path)
        except OSError:
            pass
while clean is True:
    for i in range(1):
        sys.stdout.write("%s" % (" " * toolbar_width))
        sys.stdout.flush()
        sys.stdout.write("\b" * (toolbar_width + 1))  

        for i in range(toolbar_width):
            sleep(0.1)  # do real work here
            # update the bar
            sys.stdout.write("█████")
            sys.stdout.flush()
        sys.stdout.write("\nDone Cleaning\n")

我希望进度条根据clean()函数打印出来 当它运行时它会运行,当它完成时它会停止。

【问题讨论】:

  • 欢迎来到 SO!这个 sn-p 在语法上不正确,也不是 minimal reproducible example,因此无法重现您的问题。请澄清。

标签: python-3.x progress-bar


【解决方案1】:

您的“True”语句后缺少一个“:”。您的代码在其他方面是正确的。只要确保你检查你的工作!它应该看起来像:

def clean(path):
    for path in paths:
        try:
            rmtree(path)
        except OSError:
            pass
    while clean is True:
        for i in range(1):
            sys.stdout.write("%s" % (" " * toolbar_width))
            sys.stdout.flush()
            sys.stdout.write("\b" * (toolbar_width + 1))  

            for i in range(toolbar_width):
                sleep(0.1)  # do real work here
                # update the bar
                sys.stdout.write("█████")
                sys.stdout.flush()
            sys.stdout.write("\nDone Cleaning\n")

【讨论】:

  • 我想你误会了,我的意思是进度条必须与 clean 函数同步,就像 clean 函数结束时进度结束一样。
猜你喜欢
  • 2012-05-01
  • 1970-01-01
  • 2018-07-19
  • 1970-01-01
  • 2014-06-17
  • 2013-01-26
  • 2011-08-06
  • 2018-08-07
  • 2016-10-13
相关资源
最近更新 更多