带有GUI进度显示的文件下载器?

2 投票
1 回答
1642 浏览
提问于 2025-04-16 02:14

我正在尝试写一个文件下载器,这个下载器有图形界面(GUI),可以显示文件下载的进度。我希望它能显示文本百分比、进度条,或者两者都有。我相信这可以用Python实现,但我不太确定该怎么做。

我在使用Python 2.6,操作系统是Windows XP。

1 个回答

3

最简单的进度条对话框可能是使用Windows的EasyDialogs(它的使用方法和mac版Python自带的EasyDialogs模块是一样的)。

要判断下载的进度,可以使用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)

当然,还有其他库可以用来制作更丰富的图形界面(但这些库可能更大或者更复杂,如果你只需要这些功能的话)。下载方面也是一样:可能有比urllib更快的选择,但这个库简单易用,而且是Python标准库的一部分。

撰写回答