Как сделать так, чтобы Python находил файлы в подпапках без жестко заданных путей? - PullRequest
0 голосов
/ 20 сентября 2019

Я использую Git VC для своих кодов Python, в основном это скрипты с научными вычислениями.Чтобы проанализировать необработанные данные (которые также являются частью репозитория) в переменные Python, я делаю:

import numpy as np
t_x_q_obs = np.genfromtxt('MeasuredAlgebrProductionRate_30min_18h.csv', delimiter=';')

Тем временем, репо выросло до> 100 файлов.Поэтому я хотел бы сгруппировать определенные файлы, особенно файлы *.csv с необработанными данными, в подпапку.Нет проблем с Git, но Python больше их не найдет.В Matlab я бы просто сказал людям добавлять целые папки + подпапки в их pathdef.m, но, поскольку программисты Python используют множество различных редакторов / IDE, универсального руководства не существует.Я хотел бы, чтобы мои скрипты выполнялись OOTB любым, кто клонировал мое репо и запускал скрипты из командной строки или из его / ее любимой IDE.Если бы я добавил эти подпапки в переменную PYTHONPATH , это тоже не было бы универсальным.Кроме того, я не хотел бы жестко кодировать относительные пути во всех сценариях.

Есть ли элегантный способ заставить Python искать внешние файлы, которые являются частью той же структуры папок?

1 Ответ

1 голос
/ 20 сентября 2019

Вы можете улучшить свой код, используя пути относительно вашего основного файла python, например:

import os
base_path = os.path.dirname(os.path.abspath(__file__))
my_file = os.path.join(base_path, 'my_data_file.csv')
# now my_file is referring to a path relative to your python script
...