Python 如何导入使用argparse的模块

Python 如何导入使用argparse的模块,python,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() 我跟在这里,我不太明白怎么做 编辑 接下来,现在我可以很好地运行脚

我得到了名为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()

我跟在这里,我不太明白怎么做

编辑
接下来,现在我可以很好地运行脚本了,但是还有比向sys.args添加列表更好的解决方案吗?或者我必须在main()完成后首先添加元素,然后从sys.args中一次又一次地删除它。

多亏了@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)

这不是你想要的吗
p.add_参数('-f','-foo',action='store_true')
我不明白你在问什么。如果你喜欢布尔型的东西,那么
store\u true
就是最好的选择。可能重复@karin-有趣的链接,但是如果使用
的脚本使用
If\uuuuuu name\uuuu==“\uuuu main\uuu”:
有条件,因为导入的模块将具有不同的名称。理想情况下,脚本将用作脚本,并且模块具有某种类型的主函数,该函数采用类似argv的参数列表。如果是这样,只需使用参数调用该函数。
proc = subprocess.Popen(['python', 'foo.py',  '-a', 'bala'], stdout=subprocess.PIPE, stderr=subprocess.STDOUT)