创建一个使用函数更新的进度条[Python 3.4]

时间:2015-03-20 00:19:22

标签: python python-3.x progress-bar

我有一个会一次运行几个小时的脚本,我不知道它是否被冻结,剩下多久等等。我想我会尝试为它做一个进度条,但我不能似乎围绕创建一个进度条,不会每隔X秒递增一次(看着你的tkinter)。

最终目标是获得一个非常简单的进度条,让我知道我的脚本仍在运行:

1)使用引导支持值添加到系统发育树 来自biopython的Phylo的“support_tree = get_support(target_tree,list_of_trees)”。 < - 此步骤最多需要8个小时。

2)启动一个新的进度条,当它循环遍历树上的节点时,检查低支持的节点(已知节点数,步骤for循环已知),当循环通过节点时递增树的。

我很确定这只是我缺乏经验,但我找不到一个教程,涵盖如何将任何类型的进度条挂钩到循环函数等,或者不仅适用于python 2.x任何帮助非常感谢!

1 个答案:

答案 0 :(得分:1)

可以使用任何GUI包手动创建进度条。我喜欢tkinter(或ttk,tk的典型包含扩展包),它有一个内置的进度条类。

这是使用它How to create downloading progress bar in ttk?

的示例

这是文档https://docs.python.org/2/library/ttk.html#progressbar

此处是新墨西哥州技术页面http://infohost.nmt.edu/tcc/help/pubs/tkinter/web/ttk-Progressbar.html

一个简单的用法是

p = ttk.Progressbar(parent, orient=HORIZONTAL, length=200, mode='determinate')
p['maximum'] = 100
for i in range(100):
    time.sleep(1)
    p['value'] = 1

虽然这个例子实际上可能不会画画,除非你强迫它。一个更好的例子是在链接的SO页面上;这只是简单的用法。 "值"财产是取得了多大的进步,以及最大的"财产是限制进步。如果您不习惯使用tkinter小部件,那么有很多资源可以帮助您入门(如果您需要,代码可以非常简洁)