无法加载《Hands-On Machine Learning》中的Housing数据集求助
解决Housing数据集FileNotFoundError问题
以下是针对你遇到的FileNotFoundError问题的排查和解决步骤:
检查当前工作目录
先在代码开头添加打印当前工作目录的代码,确认数据集目录的实际创建位置:print("当前工作目录:", os.getcwd())如果发现
datasets/housing没有创建在预期路径,直接改用绝对路径定义HOUSING_PATH,示例:# 替换为你希望存放数据集的绝对路径 HOUSING_PATH = os.path.join('/home/your_name/data', 'datasets', 'housing')确保目录与文件操作可追踪
修改fetch_housing_data函数,添加执行日志,定位具体失败环节:def fetch_housing_data(housing_url=HOUSING_URL, housing_path=HOUSING_PATH): try: # 递归创建目录,避免多级目录不存在的问题 os.makedirs(housing_path, exist_ok=True) print(f"目录状态: {housing_path} 已就绪") tgz_path = os.path.join(housing_path, 'housing.tgz') urllib.request.urlretrieve(housing_url, tgz_path) print(f"数据集压缩包已下载至: {tgz_path}") with tarfile.open(tgz_path) as housing_tgz: housing_tgz.extractall(path=housing_path) print("压缩包已成功解压") except Exception as e: print(f"执行出错: {str(e)}")运行后根据日志判断是目录创建失败、下载失败还是解压失败。
手动验证文件状态
执行完fetch_housing_data后,前往HOUSING_PATH指定的路径:- 确认是否存在
housing.tgz文件 - 确认解压后是否生成了
housing.csv文件
如果压缩包存在但解压无结果,删除损坏的housing.tgz后重新运行代码。
- 确认是否存在
简化路径快速测试
先用极简绝对路径验证代码逻辑,比如将数据集放在下载目录:HOUSING_PATH = os.path.join(os.path.expanduser("~"), "Downloads", "housing_test")排除相对路径带来的干扰,确认代码本身的正确性。
内容的提问来源于stack exchange,提问作者A.K Krishnamurthy
相关产品推荐
相关产品推荐

