如何导入使用argparse的模块

时间:2016-08-17 03:51:07

标签: python

我得到了模块调用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中删除它。

1 个答案:

答案 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)