|
#!/usr/bin/python#encoding:utf-8importurllibimportosdefSchedule(a,b,c):''''' a:已经下载的数据块 b:数据块的大小 c:远程文件的大小'''per =100.0*a *b /cifper > 100:per =100print'%.2f%%'%perurl ='http://www.python.org/ftp/python/2.7.5/Python-2.7.5.tar.bz2'local =os.path.join('/data/software','Python-2.7.5.tar.bz2') urllib.urlretrieve(url,local,Schedule)
直接执行,结果输出为:
******
99.33%
99.40%
99.47%
99.54%
99.60%
99.67%
99.74%
99.81%
99.87%
99.94%
100.00%
说明:
查看urllibe模块提供的urlretrieve函数。
help(urllib.urlretrieve)urlretrieve(url, filename=None, reporthook=None, data=None) 参数finename指定了保存本地路径(如果参数未指定,urllib会生成一个临时文件保存数据。)
参数reporthook是一个回调函数,当连接上服务器、以及相应的数据块传输完毕时会触发该回调,我们可以利用这个回调函数来显示当前的下载进度。
参数data指post到服务器的数据,该方法返回一个包含两个元素的(filename, headers)元组,filename表示保存到本地的路径,header表示服务器的响应头。 |
|
|