将脚本路径作为参数传递给Python

0 投票
4 回答
1517 浏览
提问于 2025-04-17 13:05

我有一个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

撰写回答