Python - 从项目根目录加载文件

8 投票
1 回答
9590 浏览
提问于 2025-04-17 13:25

我的项目结构如下:

├ ...
├── pve
│   ├── blahblah
│   │   ├── TestDefinition.py
│   │   ├── TestDefinition.pyc
│   │   ├── __init__.py
│   │   └── __init__.pyc
│   └── pve.py
├── src
│   └── definitions
│       └── THISFILE.yml
└── ...

我需要通过 pve/blahblah/TestDefinition.py 这个类来获取 src/definitions 里的文件(比如说 THISFILE.yml)。

我该如何正确地访问项目的根目录呢?一旦我找到了根目录,就可以相对地访问 .yml 文件了。

谢谢大家。

1 个回答

13

我喜欢在项目的根目录下创建一个配置文件,这个文件里会有一个指向根目录的绝对路径。我之所以这么做,是因为我常用的框架(比如django和scrapy)都有类似的约定。

├ ...
├── pve
│   ├── blahblah
│   │   ├── TestDefinition.py
│   │   ├── TestDefinition.pyc
│   │   ├── __init__.py
│   │   └── __init__.pyc
│   └── pve.py
├── src
│   └── definitions
│       └── THISFILE.yml
└── settings.py



# settings.py

import os
PROJECT_ROOT = os.path.abspath(os.path.dirname(__file__))
DEFINITIONS_ROOT = os.path.join(PROJECT_ROOT, 'src', 'definitions')


from myproject import settings 
settings.DEFINITIONS_ROOT

撰写回答