nargs=' * '
时间: 2024-04-27 20:22:12 浏览: 74
在 argparse 模块中,"nargs='*'" 表示该参数可以接受任意数量的参数值,这些参数值将被收集到一个列表中。而 "nargs=' * '"(注意有空格)表示该参数可以接受零个或多个参数值,这些参数值也将被收集到一个列表中。与 "nargs='*'" 不同的是,"nargs=' * '" 可以接受没有参数值的情况,而 "nargs='*'" 至少需要一个参数值。
相关问题
nargs=argparse
`argparse` 模块中的 `argparse.REMAINDER` 是一个特殊的常量,用于表示将命令行中剩余的所有参数都收集到一个列表中。
通常情况下,当你定义一个参数列表时,只有那些你在程序中明确指定的参数才会被 `argparse` 模块解析和使用。但是,有时候你可能需要处理那些没有被解析的参数,例如你想将这些参数传递给其他的程序或者函数中。这时候 `argparse.REMAINDER` 就能够派上用场了。
当你在定义参数时,将 `nargs` 的值设置为 `argparse.REMAINDER`,并将该参数附加到你的参数列表中,这样在解析命令行参数时,所有剩余的参数都会被收集到一个列表中,然后可以被你的程序进一步处理。
例如,以下代码段展示了如何使用 `argparse.REMAINDER` 来收集所有剩余的命令行参数:
```python
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('name', help='name argument')
parser.add_argument('other_args', nargs=argparse.REMAINDER, help='other arguments')
args = parser.parse_args()
print('Name:', args.name)
print('Other arguments:', args.other_args)
```
在这个例子中,我们定义了一个 `name` 参数和一个 `other_args` 参数。我们将 `other_args` 参数的 `nargs` 设置为 `argparse.REMAINDER`,这样当我们解析命令行参数时,所有剩余的参数都会被收集到 `args.other_args` 列表中。
例如,如果我们运行以下命令:
```bash
$ python script.py Alice --foo bar --baz
```
我们将会得到以下输出:
```
Name: Alice
Other arguments: ['--foo', 'bar', '--baz']
```
注意,`--foo` 和 `bar` 等参数并没有被解析成命令行参数,而是被收集到了 `args.other_args` 列表中。
nargs=' ? '
在 argparse 模块中,"nargs='?'" 表示该参数可以接受零个或一个参数值。如果用户指定了该选项,则该选项的参数值将被收集到一个单独的变量中;如果用户没有指定该选项,则该变量将被设置为默认值(通常是 None)。需要注意的是,"nargs='?'" 只能用于单个参数,而不能用于接受多个参数值的列表参数。
阅读全文