python使用pooch實現下載網絡文件
pooch
pooch是python的一個模塊,主打一個更加方便地下載文件,適用于科研人員和開發(fā)者。目前,已經有scikit-image, MetPy, scipy, seaborn等項目采用pooch作為內置數據集的下載方法。
其安裝過程十分便捷
pip install pooch
其特性如下
- 下載并在本地緩存文件
- 通過校驗哈希碼,讓所有運行代碼的人使用相同版本的文件。
- 支持多種下載協(xié)議
- 從figshare和Zenodo等存儲庫發(fā)布的數字對象標識符(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下載網絡文件內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Linux 發(fā)郵件磁盤空間監(jiān)控(python)
這篇文章主要介紹了Linux發(fā)郵件磁盤空間監(jiān)控功能,python實現,需要的朋友可以參考下2016-04-04Python基于easygui實現pdf和word轉換小程序
這篇文章主要為大家詳細介紹了Python如何基于easygui實現pdf和word轉換小程序,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學習一下2024-04-04Python利用ElementTree模塊處理XML的方法詳解
ElementTree是python的XML處理模塊,它提供了一個輕量級的對象模,下面這篇文章就來給大家介紹了關于Python利用ElementTree模塊處理XML的方法,文中通過示例代碼介紹的非常詳細,對大家具有一定的參考學習價值,需要的朋友們下面來一起看看吧。2017-08-08對python中的six.moves模塊的下載函數urlretrieve詳解
今天小編就為大家分享一篇對python中的six.moves模塊的下載函數urlretrieve詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-12-12