多选命令行参数

11

如何在命令行中实现多选参数?预定义一组选项,用户可以选择多个:

python cli.py --alphabet upper,lower,digits,symbols

或者

python cli.py --alphabet upper lower digits symbols
3个回答

21

示例:

>>> import argparse
>>> parser = argparse.ArgumentParser(prog='game.py')
>>> parser.add_argument('--move', choices=['rock', 'paper', 'scissors'], nargs="+")
>>> parser.parse_args(['--move', 'rock', 'paper'])
Namespace(move=['rock', 'paper'])
>>> parser.parse_args(['--move','fire'])
usage: game.py [-h] [--move {rock,paper,scissors} [{rock,paper,scissors} ...]]
game.py: error: argument --move: invalid choice: 'fire' (choose from 'rock', 'paper', 'scissors')

4

来自Python 3 Module of the Weekargparse可变参数列表

您可以配置单个参数定义以在解析命令行时消耗多个参数。根据所需或预期参数的数量,将nargs设置为以下标志值之一:

因此,在您的情况下,您需要提供

parser.add_argument('--alphabet', nargs='+')

这将表示“所有,至少一个参数”。

然后使用以下方式调用:

python cli.py --alphabet upper lower digits symbols

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接