对python中的six.moves模块的下载函数urlretrieve详解
介绍
six.moves
是由six模块提供的一个适用于Python 2和3的兼容性工具,致力于让开发者在Python 2/3之间轻松移植。常用的六个子模块:
- builtins
- configparser
- http_client
- urllib
- queue
- xrange
six.moves.urllib
子模块中提供了一个常用的下载函数urlretrieve
,我们在网络爬虫或者数据分析等领域非常常用。
函数介绍
urllib.request.urlretrieve(url, filename=None, reporthook=None, data=None)
- url:要下载文件的链接
- filename:(可选)指定下载后的文件路径
- reporthook:(可选)回调函数,用于在下载时显示下载进度
- data:(可选)要发送到服务器的附加数据(bytes或bytearray类型)
函数首先获取链接中的文件,然后将其保存到本地,返回一个二元组(filename,headers)
,其中filename
是存储已下载数据的本地文件名,headers
包含服务器的头信息。
实例说明
示例1:下载文件
from six.moves.urllib.request import urlretrieve
urlretrieve("https://www.google.com/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png", "./googlelogo.png")
此函数将下载谷歌的标志,并将其保存到本地目录./googlelogo.png
示例2: 显示下载进度
from six.moves.urllib.request import urlretrieve
def progress_bar(block_num, block_size, total_size):
percentage = float(block_num * block_size) / float(total_size) * 100.0
print("下载进度: {:.2f}%".format(percentage))
urlretrieve('http://abcd/1.jpg', '1.jpg', reporthook=progress_bar)
这里定义了一个回调函数progress_bar
来显示下载进度。当下载进度发生变化时,它将被调用,列印出当前的下载进度百分比。
用这种方式下载文件时,可以使用户了解程序的进展情况,避免不必要的担忧和等待。
以上是关于six.moves.urllib
模块中urlretrieve
函数的介绍。当我们处理网络爬虫和数据分析方面操作时,可以利用此函数更高效地进行文件下载。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:对python中的six.moves模块的下载函数urlretrieve详解 - Python技术站