当使用特定标志时,如何允许省略必需的参数?

2024-04-25 13:09:01 发布

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

我的代码如下

__version__ = 'v10'

class MyHelpFormatter(argparse.ArgumentDefaultsHelpFormatter):
       def _get_help_string(self, action):
              return action.help

def main():
       parser = argparse.ArgumentParser(
              formatter_class=MyHelpFormatter,
              description=__version__
       )

       parser.print_usage = parser.print_help

       parser.add_argument("file", help="path to file/directory")

       parser.add_argument(
              "-t",
              "--type",
              type=str,
              default=False,
              help="file type",
       )

       parser.add_argument(
              "-c",
              "--config",
              action="store_true",
              help="change custom text",
       )

       parser.add_argument(
              "-v",
              "--version",
              action='version',
              version=__version__,
              help="thumb-gen version",
       )

在我的代码中,它总是需要'file'参数。没关系

现在我想在函数调用时使用'--config'参数调用它。但是当我运行main.py --config时,它还需要'file'参数

如何在不输入所需参数的情况下使用“-config”参数


Tags: 代码addconfigparser参数versiondeftype
1条回答
网友
1楼 · 发布于 2024-04-25 13:09:01

有两种方法可以解决这个问题。首先,可以将file参数设置为可选。解析完成后,代码将检查 config标志是否存在――如果不存在,则检查是否给出了file参数。如果没有,请退出并显示相应的错误消息

或者,您可以使用两个解析器。第一个查找 config并设置一个标志(例如do_config = True);它不需要文件参数。然后使用第二个解析器,如果do_config为False,则只需要一个文件参数

相关问题 更多 >

    热门问题