我得到了调用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模块如何添加不带任何参数的选项?,但我不太明白如何做到这一点。
编辑
参考从另一个脚本导入Python脚本并使用参数运行它,现在我可以成功运行脚本,但是否有更好的解决方案来添加到sys.args中的列表?或者我必须在main()完成后先添加元素,然后再从sys.args中删除它,反复进行此操作。
p.add_argument('-f', '--foo', action='store_true')
我不确定你在问什么。如果你想要一个布尔值,那么store_true
是正确的选择。 - O.rkaif __name__ == "__main__":
条件的脚本不起作用,因为导入的模块将具有不同的名称。 - tdelaney