问题描述
我试图获取从终端运行的python文件的绝对路径,而不管运行该文件的文件系统在哪里。到目前为止,我已经看过this,但是使用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
的功能,并且 不 是预期的输出。
解决方法
解决方案是通过一些快速测试:
import os
import pathlib
path_ = pathlib.Path(os.path.abspath(__file__))