如何获取目录以使用Python中的另一个文件打开文件

时间:2019-10-16 00:14:30

标签: python

具有此目录结构。 fileOpener.py打开testfile.txt。然后fileCallingFileOpener.pyfileCallingFileOpener2.pyfileCallingFileOpener3.pyfileOpener.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")

但是要使其通用,所以它并不取决于调用它的位置。

1 个答案:

答案 0 :(得分:0)

您可以尝试使用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:
        ...

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