Running a script that calls another script as an argument that in turn has arguments
我正在寻找最有效/最简单的方法来运行一个脚本(我们称之为脚本1),参数如下:
调用其他几个脚本中的一个(仅一个)脚本(作为script1的参数),反过来:
上面有运行script1时给定的参数,并根据script1上的参数传递给正在运行的任何脚本…
例如,我想运行带有参数的script1来调用带有参数a和b的script2:
script1.py(script2 A B)
我研究过函数,读过一些建议lambda的人,但我还是个新手,想学习和理解,而不仅仅是得到一个我不理解的答案……
只是想知道一些方法是什么,并且正在寻找如何完成我想要的东西的一般例子,这样我就可以编程和理解它…
事先谢谢!!
- 这不是基于python的,但我会使用xargs。
- 阅读python教程,它解释了如何使用函数和导入脚本。
- 很难从你表达问题的方式来判断你有什么问题。你能把目前为止你拥有的东西贴出来,问一下你被卡住的部分吗?
- 谢谢乔森-会的…
- 感谢你的回答,tokenmacguy-我认为部分问题是我正在使用arcmap(GIS软件)中的脚本,并且在将参数传递给我构建的一些模型时遇到了困难,所以我在python中工作……我将继续插电!!
如果您希望您的脚本(一个python程序,我们称之为script1.py)使用给定的参数调用另一个脚本(另一个python程序),您可以将script1.py编写为:
1 2 3
| import subprocess, sys
subprocess.call(sys.argv[1:]) |
sys.argv是一个包含程序名称的列表(使用print sys.argv[0]并自己查看),然后,所有参数都传递给程序。
sys.argv[1:]是指:sys.argv列表的内容,从第二个元素(具有索引1)开始到列表的末尾。
subprocess.call调用另一个程序,它接受一个包含要执行的程序及其所有参数的列表。
- 型虽然我下意识的回答是,通常最好使用import语句,甚至使用import函数来实现这一点,但我承认,根据要求,最好将这些作为单独的脚本保存。(例如,其中一个可能没有在Python中实现。)
- 型感谢Danilo-我会把它作为一个起点,因为它看起来像一个简单的方法来完成我想在这里做的事情-像往常一样,在python中似乎有不止一种方法来做事情(这是一件好事)!