python使用pooch实现下载网络文件

 更新时间:2024年01月23日 10:35:31   作者:微小冷  
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下载网络文件内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 解决python字典对值(值为列表)赋值出现重复的问题

    解决python字典对值(值为列表)赋值出现重复的问题

    今天小编就为大家分享一篇解决python字典对值(值为列表)赋值出现重复的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-01-01
  • python中urllib.unquote乱码的原因与解决方法

    python中urllib.unquote乱码的原因与解决方法

    这篇文章主要给大家介绍了python中urllib.unquote乱码的原因与解决方法,文中介绍的非常详细,对大家具有一定的参考价值,需要的朋友可以参考学习,下面跟着小编一起来学习学习吧。
    2017-04-04
  • 基于PyQt5实现一个串口接数据波形显示工具

    基于PyQt5实现一个串口接数据波形显示工具

    这篇文章主要为大家详细介绍了如何利用PyQt5实现一个串口接数据波形显示工具,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起了解一下
    2023-01-01
  • Flask wtforms实现表单验证使用

    Flask wtforms实现表单验证使用

    本文主要介绍了Flask wtforms实现表单验证使用,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-08-08
  • 关于python实现常用的相似度计算方法

    关于python实现常用的相似度计算方法

    这篇文章主要介绍了关于python实现常用的相似度计算方法,最初的相似度计算是为了表征向量的重合程度的,在这里最经典的就是余弦相似度了,当然使用正弦或者是正切等等三角函数也都是可以的,需要的朋友可以参考下
    2023-07-07
  • Python实现格式化输出的实例详解

    Python实现格式化输出的实例详解

    这篇文章主要为大家介绍了Python语法中实现格式化输出的方法,本文通过几个实例为大家进行了详细的讲解,感兴趣的小伙伴可以了解一下
    2022-08-08
  • Python对excel的基本操作方法

    Python对excel的基本操作方法

    这篇文章主要介绍了Python对excel的基本操作,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-02-02
  • Python调用ChatGPT制作基于Tkinter的桌面时钟

    Python调用ChatGPT制作基于Tkinter的桌面时钟

    这篇文章主要为大家详细介绍了Python如何调用ChatGPT制作基于Tkinter的桌面时钟,文中的示例代码讲解详细,感兴趣的可以了解一下
    2023-03-03
  • Django中数据在前后端传递的方式之表单、JSON与ajax

    Django中数据在前后端传递的方式之表单、JSON与ajax

    Django从后台往前台传递数据时有多种方法可以实现,下面这篇文章主要给大家介绍了关于Django中数据在前后端传递的方式之表单、JSON与ajax的相关资料,需要的朋友可以参考下
    2022-10-10
  • Python中__slots__属性介绍与基本使用方法

    Python中__slots__属性介绍与基本使用方法

    在Python中,每个类都有实例属性。默认情况下Python用一个字典来保存一个对象的实例属性。这非常有用,因为它允许我们在运行时去设置任意的新属性。下面这篇文章主要给大家介绍了关于Python中__slots__属性与基本使用方法的相关资料,需要的朋友可以参考下
    2018-09-09

最新评论