【问题标题】:How do I configure required arguments while still allowing special arguments like "--version"?如何配置所需的参数,同时仍然允许“--version”等特殊参数?
【发布时间】:2015-07-26 19:15:26
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: python argparse


    【解决方案1】:

    试试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 值)。

    【讨论】:

    • 太棒了!正是我需要的。它列在 argparse 文档中。希望我在发布之前仔细查看。谢谢。
    猜你喜欢
    • 1970-01-01
    • 2021-07-09
    • 2015-04-18
    • 2012-09-15
    • 1970-01-01
    • 2013-08-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多