python使用pooch实现下载网络文件
作者:微小冷
pooch是python的一个模块,主打一个更加方便地下载文件,适用于科研人员和开发者,目前,已经有scikit-image, MetPy, scipy, seaborn等项目采用pooch作为内置数据集的下载方法,本文给大家介绍了python用pooch便捷地下载网络文件,需要的朋友可以参考下
pooch
pooch是python的一个模块,主打一个更加方便地下载文件,适用于科研人员和开发者。目前,已经有scikit-image, MetPy, scipy, seaborn等项目采用pooch作为内置数据集的下载方法。
其安装过程十分便捷
pip install pooch
其特性如下
- 下载并在本地缓存文件
- 通过校验哈希码,让所有运行代码的人使用相同版本的文件。
- 支持多种下载协议
- 从figshare和Zenodo等存储库发布的数字对象标识符(DOIs)中下载。
- 内置工具可在下载时解压缩/解压文件
下载单个文件
通过retrieve函数,可以直接下载文件,示例如下,其中file_path是下载完成后本地文件的地址。
import pooch URL = "https://github.com/fatiando/pooch/raw/v1.0.0/data/tiny-data.txt" file_path = pooch.retrieve(URL, known_hash="md5:70e2afd3fd7e336ae478b1e740a5f08e")
其完整参数如下
retrieve(url, known_hash, fname=None, path=None, processor=None, downloader=None, progressbar=False)
其中,url是下载地址,其他参数说明如下
- known_hash 可选None或字符串,表示哈希码,为None时不进行哈希校验。
- fname 在本地存储的文件名
- path 用于本地存储的文件夹路径
- processor 下载前调用的函数
- downloader 用于下载文件的函数
- progressbar 为True时,现实进度条
下面的代码,会把URL对应的文件,直接存储在当前文件夹,并重命名为test.txt。
file_path = pooch.retrieve(URL, None, fname="test.txt", path="")
计算hash值
pooch提供了file_hash函数,用于计算文件的hash码,有两个输入参数,分别是待计算的文件喝哈希算法字符串,默认是’sha256’。
file_hash函数其实是调用了标准库中的hashlib模块,支持hashlib.algorithms_available中的所有算法,如下表所示
- ‘sha1’,
- ‘sha512_224’, ‘sha512_256’
- ‘sha224’, ‘sha256’, ‘sha384’, ‘sha512’,
- ‘sha3_224’, ‘sha3_256’, ‘sha3_384’, ‘sha3_512’,
- ‘shake_128’, ‘shake_256’,
- ‘ripemd160’, ‘sm3’,
- ‘md4’, ‘md5’, ‘md5-sha1’, ‘mdc2’
- ‘blake2b’, ‘blake2s’
- ‘whirlpool’
到此这篇关于python使用pooch实现下载网络文件的文章就介绍到这了,更多相关python pooch下载网络文件内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!