在文件系统中,不断向上,直到到达特定目录

问题描述 投票:0回答:1

我正在用 python 开发一个包含多个文件夹、子文件夹等的项目。 我必须访问存储在我的 pwd 之外但在项目主目录内的文件或库。 我想在整个项目中引用目录名称时使用相对路径。 我遇到的一个问题是: 我有时可能会在一个文件夹或其子文件夹中打开 vscode。但我想访问不同文件夹中的文件,为此我必须转到密码上方的一层或两层,然后进入所需的文件夹。 我希望我的代码的编写方式与我创建密码的目录无关,只要它位于项目的主目录中即可。

如何编写代码来执行此操作,例如访问文件夹? 我将使用循环和条件语句,上升一个级别,直到到达所需的目录。但这感觉不太优雅。有没有更好或更Pythonic的方法来做到这一点?

我会使用循环和条件语句,上升一个级别,直到到达所需的目录。但这感觉不太优雅。有没有更好或更Pythonic的方法来做到这一点?

python file directory
1个回答
0
投票

我不知道你的确切文件层次结构,但我假设它类似于以下内容不失一般性

Main
|- Main.py
|-- Some Dir
|   |- Subdir
|-- Config
    |- main.txt

如果您从计算机上的任何工作目录调用Main.py,您可以通过在Main.py中调用以下命令来获取Main.py父目录的绝对路径:

# Main.py
import pathlib
absolute_path = pathlib.Path(__file__).parent.absolute()

从那里,您只需将其相对路径连接到项目根目录即可访问所有文件:

config_path = absolute_path + "/Config/main.txt"

with open(config_path, "r") as f:
    print(f.readlines())
© www.soinside.com 2019 - 2024. All rights reserved.