将脚本路径作为参数传递给Python
我有一个Python脚本,放在
/some/folder/foo.py
所以当我在 /some/folder
这个文件夹里,执行
python foo.py
这个脚本运行得很好。现在我想把这个路径 /some/folder
作为一个参数,这样我就可以在不同的文件夹里运行这个脚本了。
比如说,如果我在 /a/different/folder
这个文件夹里,我想从这个文件夹执行
foo.py
我该怎么做呢?谢谢!
4 个回答
1
你是在问怎么从命令行运行这个吗?你需要使用绝对路径:
/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])
2
只需要把脚本的完整路径加上去:
python /some/folder/foo.py
如果在你的脚本里有“相对”路径,只需在每个路径前面加上 /some/folder
就可以了。
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