<p>作为@VinaySajip答案的扩展。<a href="https://docs.python.org/2/library/argparse.html#nargs" rel="nofollow noreferrer">There are additional ^{<cd1>} worth mentioning</a>。</p>
<ol>
<li><code>parser.add_argument('dir', nargs=1, default=os.getcwd())</code></li>
</ol>
<p>N(整数)。命令行中的N个参数将被收集到一个列表中</p>
<ol start=“2”>
<li><code>parser.add_argument('dir', nargs='*', default=os.getcwd())</code></li>
</ol>
<p>“*”。所有存在的命令行参数都收集到一个列表中。<strong>注意</strong>使用<code>nargs='*'</code>的多个位置参数通常没有多大意义,但是使用<code>nargs='*'</code>的多个可选参数是可能的。</p>
<ol start=“3”>
<li><code>parser.add_argument('dir', nargs='+', default=os.getcwd())</code></li>
</ol>
<p>“+”。与“*”一样,所有存在的命令行参数都被收集到一个列表中。此外,如果不存在至少一个命令行参数,则将生成错误消息。</p>
<ol start=“4”>
<li><code>parser.add_argument('dir', nargs=argparse.REMAINDER, default=os.getcwd())</code></li>
</ol>
<p><code>argparse.REMAINDER</code>。所有剩余的命令行参数都收集到一个列表中。这对于分派到其他命令行实用程序的命令行实用程序通常很有用</p>
<p>如果未提供<code>nargs</code>关键字参数,则使用的参数数由操作确定。通常这意味着将使用一个命令行参数并生成一个项(而不是列表)。</p>
<p><strong>编辑(从@Acumenus的注释中复制)</strong><code>nargs='?'</code><a href="https://docs.python.org/3/library/argparse.html#nargs" rel="nofollow noreferrer">The docs</a>说:'?'。如果可能,将从命令行使用一个参数,并将其作为单个项生成。如果不存在命令行参数,则将生成默认值。</p>