1. 程式人生 > >機器學習_利用python從網上自動下載資料

機器學習_利用python從網上自動下載資料

機器學習一個必要的前提條件就是獲得大量資料,尤其對於我們剛開始接觸機器學習的時候,網上提供了大量開源資料來源,方便我們進行學習,但是這些資料來源會隨著時間變換,因此萌生一個自動下載資料的方法,剛好網上也有很多的方法,結合別的部落格主的方法和自己的理解寫了一個利用python自動獲取資料的函式。


相關的庫檔案:os、tarfile、urllib

import os
import tarfile
import urllib
from urllib.request import urlretrieve
def download(url,savepath):
    """
    :param url: 下載路徑
    :param savepath:儲存路徑
    :return:
    """
    filename=os.path.basename(url)
    filepath=os.path.join(savefile,filename)
    if not os.path.isdir(savefile):
        #如果不存在我們設定的儲存資料夾,則自動生成一個
        os.makedirs(savefile)
        
        #下載檔案
        urlretrieve(url,filepath)
        
        #開啟我們的檔案
        downfile=tarfile.open(filepath)
        
        #解壓我們的檔案
        downfile.extractall(savefile)
        
        #關閉讀寫操作
        downfile.close()
        print("download finished")
    else:
        print("file has existed")
if __name__ == '__main__':
    url="https://raw.githubusercontent.com/ageron/handson-ml/master/datasets/housing/housing.tgz"
    savefile="./chapter1/data"

當然也可以定義一個reporthook函式,能夠方便的顯示下載進度,這裡用不到,所以沒有寫出來