我有一个会一次运行几个小时的脚本,我不知道它是否被冻结,剩下多久等等。我想我会尝试为它做一个进度条,但我不能似乎围绕创建一个进度条,不会每隔X秒递增一次(看着你的tkinter)。
最终目标是获得一个非常简单的进度条,让我知道我的脚本仍在运行:
1)使用引导支持值添加到系统发育树 来自biopython的Phylo的“support_tree = get_support(target_tree,list_of_trees)”。 < - 此步骤最多需要8个小时。
2)启动一个新的进度条,当它循环遍历树上的节点时,检查低支持的节点(已知节点数,步骤for循环已知),当循环通过节点时递增树的。
我很确定这只是我缺乏经验,但我找不到一个教程,涵盖如何将任何类型的进度条挂钩到循环函数等,或者不仅适用于python 2.x任何帮助非常感谢!
答案 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小部件,那么有很多资源可以帮助您入门(如果您需要,代码可以非常简洁)