多个选择命令行参数

时间:2017-06-03 10:15:43

标签: python command-line argparse multiple-choice

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

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

python cli.py --alphabet upper lower digits symbols

3 个答案:

答案 0 :(得分:4)

请参阅:

示例:

>>> 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')

答案 1 :(得分:2)

来自Variable Argument ListsargparsePython 3 Module of the Week

  

您可以配置单个参数定义以在要解析的命令行上使用多个参数。根据所需或预期参数的数量,将nargs设置为其中一个标志值:

所以在你的情况下你需要提供

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

哪个代表全部,至少一个参数

然后用:

来调用它
python cli.py --alphabet upper lower digits symbols

答案 2 :(得分:1)

如果你想使用一些选项,解析器是第二选择

相关问题