Python - 获取根项目结构的路径

新手上路,请多包涵

我在项目根目录中有一个带有配置文件的 python 项目。在整个项目中,需要在几个不同的文件中访问配置文件。

所以它看起来像: <ROOT>/configuration.conf <ROOT>/A/a.py , <ROOT>/A/B/b.py (当 b,a.py 访问配置文件时)。

获取项目根目录和配置文件的路径而不依赖于我所在项目中的哪个文件的最佳/最简单方法是什么?即不使用 ../../ ?可以假设我们知道项目根目录的名称。

原文由 matanc1 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 394
1 个回答

您可以按照 Django 的方式执行此操作: 从项目顶层的文件中为项目根定义一个变量。 例如,如果这是您的项目结构的样子:

 project/
    configuration.conf
    definitions.py
    main.py
    utils.py

definitions.py 你可以定义(这需要 import os ):

 ROOT_DIR = os.path.dirname(os.path.abspath(__file__)) # This is your Project Root

因此,在 项目根 已知的情况下,您可以 创建一个指向配置位置的变量(这可以在任何地方定义,但合乎逻辑的地方是将它放在定义常量的位置 - 例如 definitions.py ):

 CONFIG_PATH = os.path.join(ROOT_DIR, 'configuration.conf')  # requires `import os`

然后,您可以使用导入语句(例如 utils.py )轻松访问常量(在任何其他文件中): from definitions import CONFIG_PATH

原文由 jrd1 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏