
参考文献 Urlretrieve 函数解析[1]
urlretrieve(url, filename=None, reporthook=None, data=None)
from six.moves import urllib
def Schedule(a, b, c):
"""
a:已经下载的数据块
b:数据块的大小
c:远程文件的大小
"""
per = 100.0*float(a*b)/float(c)
if per > 100:
per = 100
print("a", a)
print("b", b)
print("c", c)
print('{:.2f}%'.format(per))
url = 'https://avatars1.githubusercontent.com/u/14261323?s=400&u=150449ce27748c3b23b5175f8c8342c918ae6aa8&v=4'
local = 'mylogo.png'
filename, _ = urllib.request.urlretrieve(url, local, Schedule)
# ('mylogo.png', <http.client.HTTPMessage object at 0x000001FD6491D6D8>)
print(filename)
# mylogo.png
# a 0
# b 8192
# c 38225
# 0.00%
# a 1
# b 8192
# c 38225
# 21.43%
# a 2
# b 8192
# c 38225
# 42.86%
# a 3
# b 8192
# c 38225
# 64.29%
# a 4
# b 8192
# c 38225
# 85.72%
# a 5
# b 8192
# c 38225
# 100.00%
[1]
Urlretrieve函数解析: http://www.nowamagic.net/academy/detail/1302861