我正在尝试编写一个具有GUI的文件下载程序,并显示正在下载的文件的进度。我希望它显示文本百分比,进度条或两者。我确信这可以在Python中完成,但我只是不确定如何。
我在MS Windows XP上使用Python 2.6。
答案 0 :(得分:3)
最简单的进度条对话框可能是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中。