#python #pandas #numpy
Вопрос:
У меня есть каталог со следующими подкаталогами
|---Data
|
|---Notebooks
Data
Каталог содержит файлы csv, в то время Notebooks
как каталог содержит файлы моей записной книжки Jupyter. Как получить доступ к файлу из Data
каталога с записной книжкой в Notebooks
каталоге?
Моя первоначальная идея заключалась в следующем:
df = pd.read_csv('../Data/csvFile')
Однако блок кода выдает file not found
ошибку в Панд.
Ответ №1:
Путь, который вам понадобится, будет относиться к каталогу, из которого вы обычно запускаете процесс Python, но вы можете использовать следующий трюк, чтобы сделать его относительно файла, который вы запускаете вместо этого:
from pathlib import Path
df = pd.read_csv(Path(__file__).parent/'Data'/'csvFile')
Однако __file__
переменная не определена в записных книжках Jupyter, поэтому вам придется использовать этот хак вместо этого, чтобы получить каталог, в котором находится записная книжка:
from pathlib import Path
df = pd.read_csv(Path(globals()['_dh'][0])/'Data'/'csvFile')
Обратите внимание, что этот хак работает только при запуске с Jupyter. К сожалению, у меня нет универсального подхода, если только вы не считаете, что определяете, находитесь ли вы в Jupyter, а затем выбираете, какой метод вы будете использовать на основе этого.