Python 包:我可以从调用它的项目目录中查找 config/yml 文件吗?



我正在编写一个 Python 包,其中包含一堆特定于我们团队的实用程序类型函数,以便他们可以安装、导入和使用它们。其中一些函数访问需要身份验证的服务,因此在自述文件中,我指示它们在其包含其凭据的项目目录中创建一个 YAML 文件。

当他们导入此包并从中调用函数时,包是否有办法在调用它的目录中查找此 YAML 文件?还是他们需要自己解析文件并将凭据作为参数传递到函数本身?

__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 (。

最新更新