首页 > 解决方案 > Python 3.8.3“找不到文件”消息

问题描述

我目前正在学习“Hands-On Machine Learning with Scikit-Learn, Keras and TensorFlow”一书。我尝试运行以下示例,但是没有成功。链接正常,pandas 安装正确,os、tarfile 和 urllib 是系统包。尽管如此,我还是收到以下错误消息(尝试过 Jupyter 和 Spyder):

import os 
import tarfile 
import urllib 
import pandas as pd 

DOWNLOAD_ROOT = "https://raw.githubusercontent.com/ageron/handson-ml2/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): 
    os.makedirs(housing_path, exist_ok = True)
    tgz_path = os.path.join(housing_path, "housing.tgz") 
    urllib.request.urlretrieve(housing_url, tgz_path) 
    housing_tgz = tarfile.open(tgz_path) 
    housing_tgz.extractall(path = housing_path) 
    housing_tgz.close()
    


def load_housing_data(housing_path = HOUSING_PATH): 
    csv_path = os.path.join(housing_path, "housing.csv") 
    return pd.read_csv(csv_path)

housing = load_housing_data()
print(housing)

Jupyter 中的错误消息:

-------------------------------------------------- ------------------------- FileNotFoundError Traceback(最近一次调用最后一次)在 21 return pd.read_csv(csv_path) 22 ---> 23 Housing = load_housing_data() 24 住房.head()

在 load_housing_data(housing_path) 19 def load_housing_data(housing_path = HOUSING_PATH): 20 csv_path = os.path.join(housing_path, "housing.csv") ---> 21 return pd.read_csv(csv_path) 22 23 Housing = load_housing_data()

~\Miniconda3\lib\site-packages\pandas\io\parsers.py in read_csv(filepath_or_buffer, sep, delimiter, header, names, index_col, usecols, squeeze, prefix, mangle_dupe_cols, dtype, engine, converters, true_values, false_values, skipinitialspace,skirows,skipfooter,nrows,na_values,keep_default_na,na_filter,详细,skip_blank_lines,parse_dates,infer_datetime_format,keep_date_col,date_parser,dayfirst,cache_dates,迭代器,块大小,压缩,数千,十进制,lineterminator,quotechar,quoting,doublequote,escapechar,注释、编码、方言、error_bad_lines、warn_bad_lines、delim_whitespace、low_memory、memory_map、float_precision) 684) 685 --> 686 return _read(filepath_or_buffer, kwds) 687 688

~\Miniconda3\lib\site-packages\pandas\io\parsers.py in _read(filepath_or_buffer, kwds) 450 451 # 创建解析器。--> 452 parser = TextFileReader(fp_or_buf, **kwds) 453 454 如果是块大小或迭代器:

~\Miniconda3\lib\site-packages\pandas\io\parsers.py in init (self, f, engine, **kwds) 934 self.options["has_index_names"] = kwds["has_index_names"] 935 --> 936 self._make_engine(self.engine) 937 938 def close(self):

~\Miniconda3\lib\site-packages\pandas\io\parsers.py in _make_engine(self, engine) 1166 def _make_engine(self, engine="c"): 1167 if engine == "c": -> 1168 self ._engine = CParserWrapper(self.f, **self.options) 1169 else: 1170 if engine == "python":

~\Miniconda3\lib\site-packages\pandas\io\parsers.py in init (self, src, **kwds) 1996 kwds["usecols"] = self.usecols 1997 -> 1998 self._reader = parrs.TextReader (src, **kwds) 1999 self.unnamed_cols = self._reader.unnamed_cols 2000

pandas._libs.parsers.TextReader 中的 pandas_libs\parsers.pyx。初始化()

pandas_libs\parsers.pyx 在 pandas._libs.parsers.TextReader._setup_parser_source()

FileNotFoundError:[Errno 2] 没有这样的文件或目录:'datasets\housing\housing.csv'

如果有人花时间重现/提供输入代码是否返回错误消息,我将不胜感激。

非常感谢!

标签: pythonfile-not-found

解决方案


本地文件"datasets/housing/housing.csv"仅在您调用时创建

fetch_housing_data()

您的代码示例不调用此函数。尝试在housing = load_housing_data().


推荐阅读