带有GUI进度显示的文件下载器?
我正在尝试写一个文件下载器,这个下载器有图形界面(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标准库的一部分。