python - 如何获取目录以从Python中的另一个文件打开文件
问题描述
有这个目录结构。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")
但是让它通用,所以它不取决于你在哪里调用它。
解决方案
您可以尝试使用获取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:
...
另一种方法是仅使用在临时目录中创建的文件的绝对路径,如有必要,或由最终用户使用例如环境变量进行配置。