python使用pooch實現(xiàn)下載網(wǎng)絡文件
pooch
pooch是python的一個模塊,主打一個更加方便地下載文件,適用于科研人員和開發(fā)者。目前,已經(jīng)有scikit-image, MetPy, scipy, seaborn等項目采用pooch作為內置數(shù)據(jù)集的下載方法。
其安裝過程十分便捷
pip install pooch
其特性如下
- 下載并在本地緩存文件
- 通過校驗哈希碼,讓所有運行代碼的人使用相同版本的文件。
- 支持多種下載協(xié)議
- 從figshare和Zenodo等存儲庫發(fā)布的數(shù)字對象標識符(DOIs)中下載。
- 內置工具可在下載時解壓縮/解壓文件
下載單個文件
通過retrieve函數(shù),可以直接下載文件,示例如下,其中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")
其完整參數(shù)如下
retrieve(url, known_hash, fname=None, path=None, processor=None, downloader=None, progressbar=False)
其中,url是下載地址,其他參數(shù)說明如下
- known_hash 可選None或字符串,表示哈希碼,為None時不進行哈希校驗。
- fname 在本地存儲的文件名
- path 用于本地存儲的文件夾路徑
- processor 下載前調用的函數(shù)
- downloader 用于下載文件的函數(shù)
- progressbar 為True時,現(xiàn)實進度條
下面的代碼,會把URL對應的文件,直接存儲在當前文件夾,并重命名為test.txt。
file_path = pooch.retrieve(URL, None, fname="test.txt", path="")
計算hash值
pooch提供了file_hash函數(shù),用于計算文件的hash碼,有兩個輸入?yún)?shù),分別是待計算的文件喝哈希算法字符串,默認是’sha256’。
file_hash函數(shù)其實是調用了標準庫中的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實現(xiàn)下載網(wǎng)絡文件的文章就介紹到這了,更多相關python pooch下載網(wǎng)絡文件內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
使用python實現(xiàn)unix2dos和dos2unix命令的例子
今天小編就為大家分享一篇使用python實現(xiàn)unix2dos和dos2unix命令的例子,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-08-08
python 如何將帶小數(shù)的浮點型字符串轉換為整數(shù)
在python中如何實現(xiàn)將帶小數(shù)的浮點型字符串轉換為整數(shù)呢?今天小編就為大家介紹一下解決方案,希望對大家有所幫助。一起跟隨小編過來看看吧2021-05-05
Anaconda虛擬環(huán)境中安裝cudatoolkit和cudnn包并配置pytorch-gpu的配置教程
這篇文章詳細介紹了如何在Anaconda虛擬環(huán)境中安裝和配置TensorFlow,特別是針對CUDA和cuDNN的版本管理,文章首先解釋了為什么需要更新TensorFlow版本,然后指導如何創(chuàng)建新的虛擬環(huán)境,需要的朋友可以參考下2025-02-02
python畫圖時設置分辨率和畫布大小的實現(xiàn)(plt.figure())
這篇文章主要介紹了python畫圖時設置分辨率和畫布大小的實現(xiàn)(plt.figure()),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2021-01-01

