我正在尝试编写一个具有GUI的文件下载器,并显示正在下载的文件的进度。 我希望它显示一个文本百分比,进度条或两者。 我相信这可以在Python中完成,但我不知道如何。
我在MS Windows XP上使用Python 2.6。
最简单的进度条对话框可能是用于Windows的EasyDialogs (与Python版本的Mac版本中包含的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中。