Как прочитать csv-файл в отдельной родительской папке?

#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, а затем выбираете, какой метод вы будете использовать на основе этого.