我正在用 python 开发一个包含多个文件夹、子文件夹等的项目。 我必须访问存储在我的 pwd 之外但在项目主目录内的文件或库。 我想在整个项目中引用目录名称时使用相对路径。 我遇到的一个问题是: 我有时可能会在一个文件夹或其子文件夹中打开 vscode。但我想访问不同文件夹中的文件,为此我必须转到密码上方的一层或两层,然后进入所需的文件夹。 我希望我的代码的编写方式与我创建密码的目录无关,只要它位于项目的主目录中即可。
如何编写代码来执行此操作,例如访问文件夹? 我将使用循环和条件语句,上升一个级别,直到到达所需的目录。但这感觉不太优雅。有没有更好或更Pythonic的方法来做到这一点?
我会使用循环和条件语句,上升一个级别,直到到达所需的目录。但这感觉不太优雅。有没有更好或更Pythonic的方法来做到这一点?
我不知道你的确切文件层次结构,但我假设它类似于以下内容不失一般性:
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())