擅长:python、mysql、java
<p>您在问<code>argparse</code>它不是为它编写的:它擅长解析一个命令行(但只能解析一个命令行),而您希望在一行中解析多个命令。IMHO,必须对参数数组进行初始拆分,然后对每个子命令使用<code>argparse</code>。下面的函数接受参数列表(可以是<code>sys.argv</code>),跳过数组中从每个已知子命令开始的第一个参数和剩余的参数。然后可以对每个子列表使用argparse:</p>
<pre><code>def parse(args, subcommands):
cmds = []
cmd = None
for arg in args[1:]:
if arg in (subcommands):
if cmd is not None:
cmds.append(cmd)
cmd = [arg]
else:
cmd.append(arg)
cmds.append(cmd)
return cmds
</code></pre>
<p>在您的例子中:</p>
^{pr2}$
<p>=></p>
<pre><code>[['executeBuild', ' name', 'foobar1'], ['executeBuild', ' name', 'foobar2']]
</code></pre>
<p>限制:子命令用作保留字,不能用作选项参数。在</p>