机器学习一个必要的前提条件就是获得大量数据,尤其对于我们刚开始接触机器学习的时候,网上提供了大量开源数据源,方便我们进行学习,但是这些数据源会随着时间变换,因此萌生一个自动下载数据的方法,刚好网上也有很多的方法,结合别的博客主的方法和自己的理解写了一个利用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函数,能够方便的显示下载进度,这里用不到,所以没有写出来