擅长:python、mysql、java
<p>其他回答建议在项目的顶层使用文件。如果使用<code>pathlib.Path</code>和<code>parent</code>(Python 3.4及更高版本),则无需执行此操作。考虑下面的目录结构,其中省略了除<code>README.md</code>和<code>utils.py</code>之外的所有文件。</p>
<pre><code>project
│ README.md
|
└───src
│ │ utils.py
| | ...
| ...
</code></pre>
<p>在<code>utils.py</code>中,我们定义了以下函数。</p>
<pre><code>from pathlib import Path
def get_project_root() -> Path:
"""Returns project root folder."""
return Path(__file__).parent.parent
</code></pre>
<p>在项目的任何模块中,我们现在都可以获得项目根目录,如下所示。</p>
<pre><code>from src.utils import get_project_root
root = get_project_root()
</code></pre>
<p><strong>优点</strong>:任何调用<code>get_project_root</code>的模块都可以在不改变程序行为的情况下移动。只有当模块<code>utils.py</code>被移动时,我们才需要更新<code>get_project_root</code>和导入(重构工具可用于自动化此操作)。</p>