nargs=argparse
时间: 2023-07-19 07:44:30 浏览: 164
`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` 列表中。
阅读全文