在我的应用程序的文件夹结构下:
rootfolder
/subfolder1/
/subfolder2
/subfolder3/test.py我在subfolder3中的代码。但是我想把代码的输出写成subfolder1。
script_dir = os.path.dirname(__file__)
full_path = os.path.join(script_dir,'/subfolder1/')我想知道如何在不导入目录的完整路径的情况下做到这一点。
发布于 2017-12-13 06:55:46
听起来你想要的东西大概是
project_root = os.path.dirname(os.path.dirname(__file__))
output_path = os.path.join(project_root, 'subfolder1')project_root设置为脚本父文件夹上方的文件夹,该文件夹与您的描述相匹配。然后,输出文件夹转到该文件夹下的subfolder1。
我也会将我的import重新表述为
from os.path import dirname, join这会将您的代码缩短为
project_root = dirname(dirname(__file__))
output_path = join(project_root, 'subfolder1')我发现这个版本更容易阅读。
发布于 2017-12-13 09:56:17
完成这个任务的最好方法是把你的项目变成一个模块。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()https://stackoverflow.com/questions/47782780
复制相似问题