首页 > 解决方案 > 如何获取目录以从Python中的另一个文件打开文件

问题描述

有这个目录结构。fileOpener.py打开testfile.txt. 并且fileCallingFileOpener.pyfileCallingFileOpener2.pyfileCallingFileOpener3.py从中调用一个方法fileOpener.py打开testfile.txt。正确的路径是什么,fileOpener.py以便它始终有效?即使在其他计算机中。

\parentDirectory
    \subfldr1
        -fileOpener.py
        -testfile.txt
    \subfldr2
        -fileCallingFileOpener.py
    \subfldr2
        -fileCallingFileOpener2.py
    -fileCallingFileOpener3.py

我在问类似的问题:

os.path.join("..", "subfldr1", "testfile.txt")

但是让它通用,所以它不取决于你在哪里调用它。

标签: python

解决方案


您可以尝试使用获取fileOpener模块的位置,__file__然后使路径相对于该路径:

# parentDirectory/subfldr1/fileOpener.py
from pathlib import Path


def read_file():
    file_path = Path(__file__).parent / "testfile.txt"

    with file_path.open("r", encoding="utf-8") as file:
        ...

另一种方法是仅使用在临时目录中创建的文件的绝对路径,如有必要,或由最终用户使用例如环境变量进行配置。


推荐阅读