用途:pooch 面向地学与科研场景,帮助脚本可复现地下载数据文件,并在本地缓存,避免重复下载。
主要能力:pooch.retrieve() 下载单个文件并自动缓存,支持 known_hash 校验和验证;pooch.create() 创建包含多个文件与哈希的数据注册表,通过 REGISTRY.fetch() 获取;pooch.file_hash() 生成本地文件哈希;pooch.os_cache() 返回操作系统缓存目录。数据处理支持 Unzip()、Untar()、Decompress()(gzip、bz2、lzma、xz)等 processor,可解压或解压归档与压缩文件。下载可开启 progressbar,并可传入 pooch.HTTPDownloader(auth=("user","pass")) 进行 HTTP 认证。支持 doi: 前缀的 Zenodo DOI 地址下载。
使用方式:用 pooch.retrieve(url=..., known_hash=..., fname=..., path=...) 下载单文件;用 pooch.create(path=..., base_url=..., registry={"文件": "sha256:..."}) 建注册表后 fetch;哈希验证可传 None 跳过(仅限开发)。可通过 pooch.exceptions.HTTPDownloadError、DownloadError 捕获下载异常。缓存位置按系统区分,如 Linux 为 ~/.cache/<project>,macOS 为 ~/Library/Caches/<project>,Windows 为 AppData\Local<project>\Cache。
适用场景:需要固定哈希、可重复获取的科学数据注册表;压缩包或 gzip 单文件下载;带认证或进度条的大文件下载。
限制:pooch 不是版本控制系统,不提供数据版本管理;若需与 git 集成的数据版本控制可考虑 DVC,简单一次性下载可用 requests,命令行批量下载可用 wget。