如何配置必需的参数,同时仍允许使用“--version”之类的特殊参数?

时间:2015-07-26 19:15:27

标签: python argparse

我有一个Python脚本,它接受一个或多个输入文件并生成一个或多个输出文件(一种编译器,将一种语法翻译成另一种)

在我的argparse部分中,我已配置为输入文件列表选项为“nargs ='+'”,因此如果用户提供零输入文件,它将显示“参数太少”错误。

同时,我想要一个“--version”选项,只打印当前脚本版本并退出。提供此选项时,其他所有内容(如果提供)都无关紧要,应予以忽略。

就像ArgumentParser自动添加“ - help”选项一样,如何工作,如何在不改变nargs ='+'机制的情况下添加“--version”选项?

1 个答案:

答案 0 :(得分:2)

尝试version动作类。来自文档:

'version' - This expects a version= keyword argument in the add_argument() call, and prints version information and exits when invoked:

>>>
>>> import argparse
>>> parser = argparse.ArgumentParser(prog='PROG')
>>> parser.add_argument('--version', action='version', version='%(prog)s 2.0')
>>> parser.parse_args(['--version'])
PROG 2.0

它的行为类似于help( - h),除了它显示您使用它定义的version参数(或者缺少您为解析器本身提供的version值)。