Python:使用argpar时,允许在帮助输出中最后指定位置参数或先指定位置参数

2024-10-01 09:32:34 发布

您现在位置:Python中文网/ 问答频道 /正文

这个代码

import argparse

parser = argparse.ArgumentParser()

parser.add_argument('target', help='Specifiy who to attack!')

magic = ['fireball', 'heal', 'microwave']
parser.add_argument('-m', '--magic', nargs='*',
                    choices=magic,
                    help=('Magic'))
parsed_arguments = parser.parse_args()

生成此帮助输出

^{pr2}$

我认为帮助输出是令人困惑的,使它看起来像是应该最后指定目标,但这并不起作用:python example.py -m fireball troll给出了argument -m/--magic: invalid choice: 'troll'。在

我意识到这种语言的语法变得模棱两可,但仍然可以看出,因为句子中应该存在最后一个单词(目标),因此troll不是{}选项的参数。在

问题:

  1. 有没有一种方法可以让位置参数最后指定,而不必过多地使用argparse?在
  2. 有没有办法让argparse帮助输出指示应该首先指定target?在

Tags: 代码importaddparsertarget目标参数magic
1条回答
网友
1楼 · 发布于 2024-10-01 09:32:34

正如前面在一篇评论中提到的,POSIX系统上表示选项结束的标准方法是用分隔参数和选项。在

至于第二个问题:您可能需要创建自己的HelpFormatter来实现这一点,请参见formatter-class。您可以从默认格式化程序继承并仅重写生成用法行所需的函数。在

相关问题 更多 >