python - 希望使用 argparse 设置全局默认参数

标签 python python-3.x argparse

<分区>

我正在编写一个新脚本,并希望在不带任何参数调用脚本时默认调用 -h 或 --help 参数。因此,例如,如果有人调用 command_line_utility.py,那么我希望它打印出使用 command_line_utility.py -h 获得的输出。

我仔细研究了文档并查看了一些示例,但所有示例都指定了默认参数值,实际上并没有让 arg parse 调用默认参数。

# Setting up Main Argument Parser
    main_parser = argparse.ArgumentParser(description="A set of python web utility scripts")
    main_parser.add_argument("-v",'--version', action='version', version='kuws V0.0.1')

    # Setting up the main subparser
    subparsers = main_parser.add_subparsers(help="Available commands found below, for more info on a command use: python command_line_utility.py <command> -h or kuws <command> -h")


    """Code below handles 'redirects' command in the main script
    i.e. >python command_line_utility.py redirects or kuws redirects
    """
    redirects_parser = subparsers.add_parser('redirects', argument_default='-u',
        help='Allows you to trace redirects and get other information')

    redirects_parser.add_argument('-u', "--url", 
        help='usage: python main.py redirects -u <url>; Lets you see the trace for a url', nargs='?', dest="trace_url")

就目前而言,当我运行该文件时,实际上没有任何内容打印到命令行。没有帮助文本或错误或任何东西。

最佳答案

恐怕 argparse 对此没有任何内置支持,但您可以识别这种情况并打印帮助消息:

import sys

if len(sys.argv)==1:
    parser.print_help(sys.stderr)
    sys.exit(1)

关于python - 希望使用 argparse 设置全局默认参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56722273/

相关文章:

python - 在 Windows 上以非侵入方式解锁文件

Python - 打破和分组用户输入

python - 将参数解析为字典 argparse

python - 如何使用 argparse 指定最小或最大浮点值

python - 如何在 ubuntu 20.04 上安装 python3-pip

python - Heroku 上基于 Git 的 pip 依赖项未升级

java - Python 套接字客户端到 Java 套接字服务器

python - 从字典调用的字符串是无效语法? -Python 3

mysql - 生产环境频繁Mysql gone away (Error 2006)

python - 从 python/argparse 中删除参数(不使用 parse_known_args)