Jam*_*rds 5 python python-3.x tqdm
我正在尝试向我贡献的开源项目添加进度条功能。该软件以易于使用的方式将多线程命令传递给它。目前,我正在尝试向应用程序添加进度栏功能,但是无法让进度栏粘在底部并更新。
我们使用以下代码来处理命令:
subprocess.call(task, shell=True)
Run Code Online (Sandbox Code Playgroud)
我目前使用tqdm.update()更新栏的进度,但是它不断在新行上打印,使终端看起来很糟糕。

要准确了解我们如何使用 tqdm 包,请参阅以下链接: https: //github.com/codingo/Interlace/blob/master/Interlace/lib/threader.py
最后,我们对该应用程序的目标是在终端底部粘贴一个进度条,这样它就不会影响输出并且看起来相当干净。任何帮助,将不胜感激!
通过更改以下内容修复了该问题:
@staticmethod
def run_task(task):
subprocess.call(task, shell=True)
Run Code Online (Sandbox Code Playgroud)
进入:
@staticmethod
def run_task(task, t):
s = subprocess.Popen(task, shell=True, stdout=subprocess.PIPE)
t.write(s.stdout.readline().decode("utf-8"))
Run Code Online (Sandbox Code Playgroud)
这基本上允许我们将任务的所有输出传输到 stdout,然后使用 UTF-8 解码字节并使用 tqdm.write() 打印出来
效果非常好!
| 归档时间: |
|
| 查看次数: |
4970 次 |
| 最近记录: |