Python访问项目根目录

时间:2017-12-12 22:43:43

标签: python

我的应用程序的文件夹结构:

rootfolder
          /subfolder1/
          /subfolder2
          /subfolder3/test.py

我的代码在子文件夹3中。但我想将代码的输出写入subfolder1

script_dir = os.path.dirname(__file__)

full_path = os.path.join(script_dir,'/subfolder1/')

我想知道如何在不导入目录的完整路径的情况下执行此操作。

2 个答案:

答案 0 :(得分:2)

听起来你想要的东西是

project_root = os.path.dirname(os.path.dirname(__file__))
output_path = os.path.join(project_root, 'subfolder1')

project_root设置为上面的文件夹您脚本的父文件夹,该文件夹与您的说明相匹配。然后输出文件夹转到subfolder1下。

我还将我的导入改为

from os.path import dirname, join

将您的代码缩短为

project_root = dirname(dirname(__file__))
output_path = join(project_root, 'subfolder1')

我觉得这个版本更容易阅读。

答案 1 :(得分:-2)

完成此任务的最佳方法是将项目转变为模块。 Python使用__init__.py文件来识别此设置。所以我们可以简单地在根目录下创建一个空的__init__.py文件。结构看起来像:

rootfolder
          /subfolder1/
          /subfolder2
          /subfolder3/test.py
          __init__.py

完成后,您可以引用任何子文件夹,如下所示:

subfolder1/output.txt

因此,您的脚本看起来像这样:

f = open("subfolder1/output.txt", "w+")
f.write("works!")
f.close()