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

标签 python windows user-interface download progress-bar

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

我在 MS Windows XP 上使用 Python 2.6。

最佳答案

最简单的进度条对话框可能是 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 中。

关于python - 带 GUI 进度显示的文件下载器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3394345/

相关文章:

wpf - 控件的 "visible area"?

python - 如何将参数传递给 Python 中的回调函数?

用多态替换 Python 条件

python - 这是弱引用的一个很好的用例吗?

windows - Apache Web 服务器 - 相当于 Windows 10 的 apxs

windows - 哪些错误/异常会触发 Windows 错误报告?

c# - Balloontip 我怎样才能捕捉到点击 C#

python - 从虚拟环境中在 PyCharm 中注册 VCS 根?

java - 如何通过按键触发 JButton?

用于构建具有 C++ 后端的 GUI 的 Java 与 C++