read_csv с относительным путем в jupyter - PullRequest
0 голосов
/ 21 марта 2020

Я постараюсь быть максимально простым. Я не очень хорош в этих вещах.

На моем компьютере в папке "C: \ Users \ Oria" есть папка с именем Project. Эта папка содержит code.ipynb и папку с именем data. Внутри данных папки есть только один файл с именем iris_features.csv

Я загрузил code.ipynb в блокнот jupyter, там есть строка (которая заблокирована для изменений, не может ее изменить), которая гласит

irisCsvFileName = 'data' + os.sep + 'iris_fearures.csv'
df_iris_features = pd.read_csv(irisCsvFileName)

Итак, насколько я понимаю, следует понимать, что рабочим каталогом является "C: \ Users \ Oria \ Project", и все пути будут относительными к нему.

Однако это не работает Выдает ошибку

FileNotFoundError: [Errno 2] File data\iris_fearures.csv does not exist: 'data\\iris_fearures.csv'

Когда я указываю полный путь к iris_features.csv, он работает нормально. Однако, как я уже сказал, я не могу изменить данный код.

Что я делаю не так? Должен ли я загружать в блокнот jupyter больше, чем просто файл ipynb?

Ответы [ 2 ]

1 голос
/ 21 марта 2020

В коде, который вы указали в своем вопросе, есть опечатка:

irisCsvFileName = 'data' + os.sep + 'iris_fearures.csv'
df_iris_features = pd.read_csv(irisCsvFileName)

Вы написали iris_fearures.csv, но позже сказали, что файл называется iris_features. Вы можете проверить, что ваш текущий рабочий каталог - это то, что вы ожидаете, используя:

import os
cwd = os.getcwd()

И вы можете найти больше информации об использовании путей к файлам et c в этом SO-ответе

1 голос
/ 21 марта 2020

вы должны указать полный путь, если вы не открыли блокнот jupyter из папки C:\Users\Oria\Project, если вы просто откроете .ipynb из той же папки Project пути не будут относительными к этому .ipynb, но с папкой, из которой вы запускаете jupyter

, вы можете проверить текущий рабочий каталог (для которого все остальные пути являются родственниками, если они не являются полными путями):

import os

os.getcwd()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...