【问题标题】:How to get absolute path of python file REGARDLESS of where it is run from如何获取python文件的绝对路径,无论它是从哪里运行的
【发布时间】: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.pycd,现在调用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


【解决方案1】:

解决方案是,通过一些快速测试:

import os
import pathlib
path_ = pathlib.Path(os.path.abspath(__file__))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-10-18
    • 1970-01-01
    • 1970-01-01
    • 2023-04-05
    • 2010-09-08
    • 2010-09-18
    相关资源
    最近更新 更多