【发布时间】:2021-01-29 09:13:58
【问题描述】:
我正在尝试获取从终端运行的 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; os.path.abspath(__file__) -
这行得通!我一直在寻找一个有效的方法几个小时。但这只是部分解决方案,完整的解决方案将
import os; import pathlib; pathlib.Path(os.path.abspath(__file__))使其成为路径变量以便能够获取其父项。
标签: python-3.x path pathlib