我得到了模块调用foo.py,使用argparse来处理变量,需要一些变量,-a和一个元素
python foo.py -a element
这很好用,现在我得到一个元素列表,我尝试使用foo.py来运行所有这些。所以我创建了一个这样的脚本:
import foo
for i in range(len(element)):
# how to run foo and pass -a here?
另一个选项是使用execfile()
execfile("foo.py") #should I set the -a as some global variable here?
我在这里argparse module How to add option without any argument?,我不太明白该怎么做。
关注importing a python script from another script and running it with arguments,现在我可以很好地运行脚本,但是比向sys.args添加列表更好的解决方案?或者我必须在main()完成后首先添加元素,而不是一遍又一遍地从sys.args中删除它。
答案 0 :(得分:0)
感谢@ Karin,这很有效。
import sys
sys.argv += ['-a','-H MYHOSTNAME' .... other options]
from pyrseas import dbtoyaml
dbtoyaml.main()
这也有效。
proc = subprocess.Popen(['python', 'foo.py', '-a', 'bala'], stdout=subprocess.PIPE, stderr=subprocess.STDOUT)