避免硬编码以获取Python文件路径
我正在处理不同位置的文件。我希望在每一步都避免硬编码。我的文件包括,输入文件(由输入组成)、python脚本和输出文件。现在,我想在不硬编码脚本的情况下与上述每个文件夹进行交互。python是否有任何模块用于修剪根目录的路径并访问后续文件夹 目前,我正在使用os.getcwd()访问脚本的路径。我想使用此代码的输出来访问不同文件夹中的其他文件避免硬编码以获取Python文件路径,python,operating-system,Python,Operating System,我正在处理不同位置的文件。我希望在每一步都避免硬编码。我的文件包括,输入文件(由输入组成)、python脚本和输出文件。现在,我想在不硬编码脚本的情况下与上述每个文件夹进行交互。python是否有任何模块用于修剪根目录的路径并访问后续文件夹 目前,我正在使用os.getcwd()访问脚本的路径。我想使用此代码的输出来访问不同文件夹中的其他文件 import os dirpath = os.getcwd() root_dirpath, py_script = os.path.split(dirpa
import os
dirpath = os.getcwd()
root_dirpath, py_script = os.path.split(dirpath)
代码中的root_dirpath为我提供了python脚本的路径。我想将此路径修剪到用户文件夹,然后从另一个文件夹访问该文件。是否有任何模块可以在没有实际硬编码的情况下执行此操作。有当前的工作目录, 然后是你的程序所在的目录。 它们是不同的概念,可能相同也可能不同 这个表达式非常有用:
os.path.dirname(os.path.realpath(__file__))
或者更简单地说,如果您的$PYTHONPATH
缺少像这样的麻烦条目。
有些项目将有一个“顶级”目录,它是一个或多个级别
从python源代码的位置。
您可能会发现将'../../../'
附加到\uuuuuu文件\uuuuuu
很有用,
或者使用os.path.join()
以下是查找您喜爱的文件的一种可能性:
from pathlib import Path
top = Path(__file__ + '../..').resolve()
arrow = top / 'assets/arrow.png'
print('source image:', arrow)
print('destination image:', top / 'output' / os.path.basename(arrow))
警告:有时库代码直接从.zip文件运行
或其他不寻常的环境。
在这种情况下,您可能会发现\uuuuuuuuuuuuuuuuuuuuuuuuu
没有那么有用。从stdlib中查找\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu,所以你可以循环浏览它的内容。你需要从根路径返回多少层?@ekmcd我想返回两层。在“'os.listdir(PATH)'”中,我是否需要指定路径!或者是否有方法获取根目录的路径。如果通过根目录/user文件夹,您指的是当前用户的主目录,则os.environ['home']
应提供给您该路径。然后您可以使用os.listdir(os.environ['home'])
列出os.environ['HOME']中的每个文件和子目录。