具有此目录结构。 fileOpener.py
打开testfile.txt
。然后fileCallingFileOpener.py
,fileCallingFileOpener2.py
和fileCallingFileOpener3.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")
但是要使其通用,所以它并不取决于调用它的位置。
答案 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目录中创建的文件的绝对路径,或者由最终用户使用例如环境变量对其进行配置。