擅长:python、mysql、java
<p><strong>默认子命令</strong></p>
<p>如果您希望有子命令,并且在没有指定子命令的情况下将其中一个设为默认值,则不能使用典型的subparser方法。在</p>
<p>您需要分两次执行argparse:</p>
<pre><code>parser = ArgumentParser()
parser.add_argument("function",
nargs="?",
choices=['function1', 'function2', 'function2'],
default='function1',
)
args, sub_args = parser.parse_known_args()
if args.function == "function1":
parser = ArgumentParser()
parser.add_argument('-a',' a')
parser.add_argument('-b',' b')
parser.add_argument('-c',' c')
args = parser.parse_args(sub_args)
function1(args.a, args.b, args.c)
elif args.function == "function2":
...
elif args.function == "function3":
...
</code></pre>
<p><strong>处理<code> help</code></strong></p>
<p>如果希望<code> help</code>选项有用,则需要做更多的工作:</p>
<ul>
<li>我们需要手动处理帮助,因为有时我们需要整体帮助,有时需要子命令的帮助</li>
<li>我们不能直接给出默认子命令,因为我们需要知道是否指定了它</li>
</ul>
<p>这应该可以做到:</p>
^{pr2}$