【发布时间】:2010-08-03 07:14:48
【问题描述】:
我正在尝试编写一个具有 GUI 并显示正在下载的文件的进度的文件下载器。我希望它显示文本百分比、进度条或两者兼而有之。我确信这可以在 Python 中完成,但我不确定如何。
我在 MS Windows XP 上使用 Python 2.6。
【问题讨论】:
标签: python windows user-interface download progress-bar
我正在尝试编写一个具有 GUI 并显示正在下载的文件的进度的文件下载器。我希望它显示文本百分比、进度条或两者兼而有之。我确信这可以在 Python 中完成,但我不确定如何。
我在 MS Windows XP 上使用 Python 2.6。
【问题讨论】:
标签: python windows user-interface download progress-bar
最简单的进度条对话框可能是EasyDialogs for Windows(遵循与mac版python中包含的EasyDialogs模块相同的api)
要确定下载进度,请使用带有“reporthook”的urllib.urlretrieve()。
类似这样的:
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 中。
【讨论】: