ArgParse子份子EXIT_ON_ERROR

发布于 2025-01-28 20:31:12 字数 1151 浏览 3 评论 0原文

我想禁用exit_on_error用于解析器和子份子,以防止错误消息:

import argparse


if __name__ == '__main__':

    parser = argparse.ArgumentParser(exit_on_error=False)
       
    subparsers = parser.add_subparsers() 
   
    subcommand = subparsers.add_parser('subcommand')
    subcommand.add_argument('argument')
   
    try:
        arguments = parser.parse_args()
    except:
        parser.print_usage(std.stderr)

没有参数(即:不调用子份子),它按照预期的方式工作:

$ python3 main.py 
usage: main.py {subcommand} ...

但是当我使用子命令时,它没有:

$ python3 main.py subcommand
usage: main.py subcommand [-h] argument
main.py subcommand: error: the following arguments are required: argument
usage: main.py {subcommand} ...

在这种情况下,我希望它取而代之的是:

$ python3 main.py subcommand
usage: main.py {subcommand} ...

我检查了一下,并且add_subparsers nor ADD_PARSERexit_on_error参数。如何抑制打印这些错误消息?

I want to disable exit_on_error for a parser and subparser, to prevent error messages:

import argparse


if __name__ == '__main__':

    parser = argparse.ArgumentParser(exit_on_error=False)
       
    subparsers = parser.add_subparsers() 
   
    subcommand = subparsers.add_parser('subcommand')
    subcommand.add_argument('argument')
   
    try:
        arguments = parser.parse_args()
    except:
        parser.print_usage(std.stderr)

With no arguments (ie: no subparser invoked) it works as intended:

$ python3 main.py 
usage: main.py {subcommand} ...

But when I use a subcommand, it doesn't:

$ python3 main.py subcommand
usage: main.py subcommand [-h] argument
main.py subcommand: error: the following arguments are required: argument
usage: main.py {subcommand} ...

In this instance, I'd want it to print this instead:

$ python3 main.py subcommand
usage: main.py {subcommand} ...

I checked, and neither add_subparsers nor add_parser take an exit_on_error argument. How can I suppress printing those error messages?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文