zoukankan      html  css  js  c++  java
  • Python 命令行参数解析

    Python 命令行参数解析

    argparse 模块有参数解析器Parser和参数Arguement 结果集Namespace三个基本抽象。

    • Parser
      • 执行解析规则
      • 可以有子解析器(子命令)
    • Arguement
      • 设置参数名称、别名、帮助信息、是否为空
      • Namespace
        • 解析结果

    添加参数

    新建一个python 文件 test.py, 内容如下:

    import argparse
    parser = argparse.ArgumentParser(description='k8s助手,主要用来管理Pod,比如查看日志、重启pod、进入pod。', add_help=True)
    parser.add_argument("-n", "--namespace", help="操作的namespace。", default=None, required=True)
    args_namespace = parser.parse_args()
    print(args_namespace)
    

    执行: python test.py -h 结果如下:

    usage: test.py [-h] -n NAMESPACE
    
    k8s助手,主要用来管理Pod,比如查看日志、重启pod、进入pod。
    
    optional arguments:
      -h, --help            show this help message and exit
      -n NAMESPACE, --namespace NAMESPACE
                            操作的namespace。
    

    传入一个-n 参数执行命令python test.py -n os 结果如下:

    ➜  /tmp python test.py -n os
    Namespace(namespace='os')
    

    添加子命令

    新建一个test_subparser.py中加入以下代码:

    import argparse
    parser = argparse.ArgumentParser(description='k8s助手,主要用来管理Pod,比如查看日志、重启pod、进入pod。', add_help=True)
    
    # dest 参数将子命令的值注册到 args_namespace
    subparsers = parser.add_subparsers(dest="operation")
    # 添加一个子命令 exec
    exec_parser = subparsers.add_parser("exec", help="进入容器。")
    
    # exec_parser 是parser对象,可以添加参数。
    exec_parser.add_argument("-n", "--namespace", help="操作的namespace。", default=None, required=True)
    
    args_namespace = parser.parse_args()
    print(args_namespace)
    

    执行python test_subparser.py exec -n os  结果如下:

    ➜  /tmp python test_subparser.py exec -n os
    Namespace(namespace='os', operation='exec')
    
  • 相关阅读:
    开源界的 5 大开源许可协议
    如何选择开源许可证?
    Ubuntu下Qt编译报错“cannot find -lGL”的解决方案
    How to Cracked Sublime Text 3 Build 3065 in Ubuntu (Linux)
    一个C语言宏展开问题
    C语言预处理运算符
    Linux线程编程之信号处理
    Linux终端多用户通信实用命令
    守护进程接收终端输入的一种变通性方法(二)
    通过printf设置Linux终端输出的颜色和显示方式
  • 原文地址:https://www.cnblogs.com/oaks/p/12203453.html
Copyright © 2011-2022 走看看