【发布时间】:2013-03-30 08:22:12
【问题描述】:
我有两个 python 脚本 A 和 B,都有一个主参数和不同的输入参数(我使用 argparse)。我通常使用以下方式启动它们:
$ python A.py --paramA1 valA1 --paramA2 valA2
$ python B.py --paramB1 valB1 --paramB2 valB2
我希望能够在A 中调用B,并在启动A 时指定B 的参数。简而言之,我想用A的参数和B的参数调用A。从外面看应该是这样的:
$ python A.py --paramA1 valA1 --paramA2 valA2 --paramB1 valB1 --paramB2 valB2
有没有比将B 的argparse 代码复制并粘贴到A 然后调用B 更优雅的方法?
编辑:为了简化,这里有一些示例代码:
A.py:
import argparse
def main():
parser = argparse.ArgumentParser(description="Args for A.py")
parser.add_argument("--param1A", type=int)
parser.add_argument("--param2A", type=int)
args = parser.parse_args()
valA1 = args.param1A
valA2 = args.param2A
...
return 0
B.py:
import argparse
def main():
parser = argparse.ArgumentParser(description="Args for B.py")
parser.add_argument("--param1B", type=int)
parser.add_argument("--param2B", type=int)
args = parser.parse_args()
valA1 = args.param1B
valA2 = args.param2B
...
return 0
包含A.py 和B.py 的参数的建议C.py 到底是什么样的?那么A.py 和B.py 会是什么样子呢?
编辑2:我忘了说B.py的参数之一必须在A.py中创建,所以执行顺序是@987654346 @ 然后是B,而A 必须能够将参数传递给B。
【问题讨论】:
-
我认为一个优雅的解决方案是将解析的参数包装到第三个文件中。
标签: python input arguments argparse