ch02:End-to-End Machine Learning Project---Get the Data---Download the Data---使用python编写函数来下载数据

ch02:End-to-End Machine Learning Project

Get the Data

Download the Data

使用python编写函数来下载数据

你可以使用浏览器下载,运行 tar xzf housing.tgz 解压出 csv 文件,但是更好的办法是写一个小函数来做这件事。如果数据变动频繁,这么做是非常好的,因为可以让你写一个小脚本随时获取最新的数据(或者创建一个定时任务来做)。如果你想在多台机器上安装数据集,获取数据自动化也是非常好的。

下面是获取数据的函数:
(本代码只是对Hands-On Machine Learning with Scikit-Learn & TensorFlow一书ch02-download the data处代码进行了注释)

import os
import tarfile#python标准库
from six.moves import urllib
"""
six是用来兼容python 23的,我猜名字就是用的23的最小公倍数。
six.moves 是用来处理那些在23里面函数的位置有变化的,直接用six.moves就可以屏蔽掉这些变化

"""

DOWNLOAD_ROOT = "https://raw.githubusercontent.com/ageron/handson-ml/master/"
HOUSING_PATH = os.path.join("datasets", "housing")
HOUSING_URL = DOWNLOAD_ROOT + "datasets/housing/housing.tgz"

def fetch_housing_data(housing_url=HOUSING_URL, housing_path=HOUSING_PATH):
    if not os.path.isdir(housing_path):#如果 path 是 现有的 目录,则返回 True
        os.makedirs(housing_path)#os.makedirs() 方法用于创建多级目录
    tgz_path = os.path.join(housing_path, "housing.tgz")#合理地拼接一个或多个路径部分。
    urllib.request.urlretrieve(housing_url, tgz_path)#urlretrieve() 方法直接将远程数据下载到本地,retrieve(检索)
    """
    six.moves下的urllib中的函数
    函数介绍:所用函数为six.moves下的urllib中的函数,调用如下urllib.request.urlretrieve(url,[filepath,[recall_func,[data]]])。
    简单介绍一下:
    url是必填的指的是下载地址
    filepath指的是保存的本地地址
    recall_func指的是回调函数,下载过程中会调用可以用来显示下载进度。
    """
    
    #解压tar文件中的部分文件到指定目录中
    housing_tgz = tarfile.open(tgz_path)#打开一个压缩文件对象,并存储一个变量
    housing_tgz.extractall(path=housing_path)#解压缩
    housing_tgz.close()#文件打开后要关闭

参考:
1、https://blog.csdn.net/sinat_21585785/article/details/74177858

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值