Python:如何查找运行python脚本的脚本的路径

时间:2010-07-07 07:57:01

标签: python path

假设我在homedir/codes/py/run.py有一个python脚本 我在homedir/codes/run.sh也有一个bash脚本 此bash脚本按run.py运行python py/run.py

问题是我需要能够在run.py中找到调用脚本run.sh的路径。如果run.sh从其自己的目录运行,我可以使用os.getcwd()。但run.sh原则上可以在任何地方运行,然后os.getcwd()将返回run.sh运行FROM的路径,而不是run.sh的实际位置。

例如:

  • homedir/codes./run.sh - > os.getcwd()返回homedir/codes
  • homedir./codes/run.sh - > os.getcwd()返回homedir

但无论homedir/codes如何调用,我都希望run.sh。这可能吗?

2 个答案:

答案 0 :(得分:3)

要获取bash中当前脚本的绝对路径,请执行以下操作:

SCRIPT=$(readlink -f "$0")

现在,将该变量作为python脚本的最后一个参数传递。您可以从python获取参数:

sys.argv[-1]

答案 1 :(得分:3)

你可以通过以下方式获得绝对合格的路径:

os.path.join(os.path.abspath(os.curdir))