Пакет Python: Могу ли я найти файл config / yml из каталога проекта, который его вызвал? - PullRequest
0 голосов
/ 25 октября 2018

Я пишу пакет Python, который содержит набор функций типа утилит, которые являются специфическими для нашей команды, чтобы они могли устанавливать, импортировать и использовать их.Некоторые из этих функций обращаются к сервисам, которые требуют аутентификации, поэтому в файле READ Me я дал им указание создать файл YAML в каталоге проекта, в котором хранятся их учетные данные.

Когда они импортируют этот пакет и вызывают из него функцию, есть ли у пакета способ найти этот файл YAML в каталоге, из которого он вызывается?Или им нужно проанализировать файл самостоятельно и передать учетные данные в качестве параметров в саму функцию?

1 Ответ

0 голосов
/ 25 октября 2018

Переменная __file__ содержит имя или путь к программе Python.Мы можем использовать функции из подмодуля os.path, чтобы использовать его для получения файла (в моем примере ниже он называется password.yml).

import os.path
prog = __file__
directory = os.path.dirname(os.path.abspath(prog))
print(os.path.join(directory, 'password.yml'))

abspath преобразует имя в абсолютный файл (начиная скорень файловой системы).dirname удаляет последний компонент (имя файла), оставляя каталог, а join объединяет путь к каталогу и имя файла вместе, используя соответствующий разделитель для вашей платформы ('/' для большинства операционных систем, '\' для Windows).

...