我正在尝试获取从终端运行的python文件的绝对路径,无论我运行该文件时在文件系统中的哪个位置。到目前为止,我已经研究过了,但使用pathlib
的答案不起作用,正如我即将演示的那样:
path_test.py
的内容
import pathlib
path_ = pathlib.Path(__file__).absolute().parent
print(path_)
如果从同一目录或以上的任何目录调用python3 path_test.py
,它将打印出预期的输出:
/home/zaid/misc/import_test
现在在同一目录mkdir dir
中创建一个目录,其中包含path_test.py
和cd
,现在调用python3 ../path_test.py
输出为:
/home/zaid/misc/import_test/dir/..
其破坏了python的importlib
的功能,并且是NOT的预期输出。
解决方案是,通过一些快速测试:
import os
import pathlib
path_ = pathlib.Path(os.path.abspath(__file__))