#python
#xiaodeng
#如何给文件下载设置下载进度?
import urllib
def callbackinfo(down,block,size):
'''
回调函数:
down:已经下载的数据块
block:数据块的大小
size:远程文件的大小
'''
per=100.0*(down*block)/size
if per>100:
per=100
print '%.2f%%'%per
url='http://www.sina.com.cn'
local='sina.html'
urllib.urlretrieve(url,local,callbackinfo)
local
#参数 finename 指定了保存本地路径(如果参数未指定,urllib会生成一个临时文件保存数据。)
【新增】local参数的数值如果只是单纯的文件名字,如test.html,test.txt等等,则默认将下载的文件保存在当前运行的py脚本路径下面
【新增】比如:urllib.urlretrieve('http://zzk.cnblogs.com/','index.html')
reporthook:
#是一个回调函数,当连接上服务器以及相应数据块传输完毕时会触发该回调,我们就可以利用该回调函数来显示当前的下载进度。
【新增】下载状态的报告,他有多个参数,
1)参数1:当前传输的块数
2)参数2:块的大小
3)参数3,总数据大小
【新增】urlretrieve函数返回结果有2个参数:
1)filename,文件名
2)HTTPMessage对象,这个就是urllib.urlopen()函数的info()返回结果
3)比如:
filename,info=urllib.urlretrieve('http://zzk.cnblogs.com/','index.html')
print info