将脚本路径作为参数python

时间:2012-02-15 16:47:32

标签: python

我有这个位于

的python脚本
/some/folder/foo.py

所以,如果我在/some/folder并且做

python foo.py

脚本运行得很好。现在我想将此路径/some/folder作为参数,以便我可以在不同的文件夹中运行此脚本。

如果我在/a/different/folder并且从我想要执行的文件夹

foo.py

我该怎么做? 感谢

4 个答案:

答案 0 :(得分:2)

只需包含脚本的完整路径:

python /some/folder/foo.py

如果在脚本中有“相对”路径,则只需在每个路径前加/some/folder

答案 1 :(得分:2)

建议是反过来,接受一个参数来运行脚本,如果它没有提供给当前目录。

foo.py <path_to_run_script_on>

然后你所要做的就是确保你的路上有foo.py。

import sys
import os
if __name__=="__main__":
 if len(sys.argv) > 1:
   p = sys.argv[1]
 else:
  p = os.path.abspath(os.path.curdir)

 print p

答案 2 :(得分:1)

你问如何从shell运行它?您正在寻找绝对路径:

/a/different/folder $ python /some/folder/foo.py

或相对路径:

/some/otherfolder $ python ../folder/foo.py

如果您希望在运行脚本时获取脚本的绝对路径名称:

import sys
import os.path

absolutePathToMe = os.path.abspath(sys.argv[0])

答案 3 :(得分:1)

import os

mypath = os.path.dirname(__file__)

将为您提供当前正在执行的脚本的路径