文件下载器与GUI进度显示?

时间:2010-08-03 07:14:49

标签: python windows user-interface download progress-bar

我正在尝试编写一个具有GUI的文件下载程序,并显示正在下载的文件的进度。我希望它显示文本百分比,进度条或两者。我确信这可以在Python中完成,但我只是不确定如何。

我在MS Windows XP上使用Python 2.6。

1 个答案:

答案 0 :(得分:3)

最简单的进度条对话框可能是EasyDialogs for Windows(遵循与mac版本的python中包含的EasyDialogs模块相同的api)

要确定下载进度,请使用urllib.urlretrieve()和“reporthook”。

这样的事情:

import sys
from EasyDialogs import ProgressBar
from urllib import urlretrieve

def download(url, filename):
    bar = ProgressBar(title='Downloading...', label=url)

    def report(block_count, block_size, total_size):
        if block_count == 0:
            bar.set(0, total_size)
        bar.inc(block_size)

    urlretrieve(url, filename, reporthook=report)

if __name__ == '__main__':
    url = sys.argv[1]
    filename = sys.argv[2]
    download(url, filename)

当然,其他库可用于更丰富的GUI界面(但如果您需要的话,它们会更大或更难)。下载也是如此:有可能比urllib更快,但这个很容易并且包含在stdlib中。