我有这个位于
的python脚本/some/folder/foo.py
所以,如果我在/some/folder
并且做
python foo.py
脚本运行得很好。现在我想将此路径/some/folder
作为参数,以便我可以在不同的文件夹中运行此脚本。
如果我在/a/different/folder
并且从我想要执行的文件夹
foo.py
我该怎么做? 感谢
答案 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__)
将为您提供当前正在执行的脚本的路径