繁体   English   中英

Python访问项目根目录

[英]Python access to project root directory

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

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

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

script_dir = os.path.dirname(__file__)

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

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

这听起来像是你想要的东西

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')

我发现这个版本更容易阅读。

完成此任务的最佳方法是将项目转换为模块。 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()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM