• python argparse使用


     在不同环境部署项目时,由于不同的配置,部署时难免会改变部署的方式,而且基本使用版本管理工具,比如git或svn进行下拉代码部署项目时,尽可能的不变动代码(如果变动代码,下次下拉代码前必须要使用git reset --hard命令恢复代码,较为麻烦)而达到成功部署的目的。

    解决方案之一是 在启动命令时添加参数,通过这个参数指定不同的配置文件从而达到部署不同环境的效果

    使用的包为 argparse 。如下为使用案例。

    # -*- coding: utf-8 -*-
    # (C) Guangcai Ren <renguangcai@jiaaocap.com>
    # All rights reserved
    # create time '2019/3/1 9:49'
    
    import argparse
    import sys
    
    parser = argparse.ArgumentParser(prog="argparse test", usage='python start.py -i develop -b heartbeat',
                                     description="Test args input!", epilog="Thanks for use this test")
    
    # 设置 可选参数范围
    parser.add_argument("-a", "--al", type=str, default='default', choices=['default', 'develop', 'product'],
                        help="""-a:入参名 --al:调用此入参的变量 type:入参值类型 default:默认值 choices:参数值范围;
                                使用案例:python argparse_rgc.py -a develop ;
                                调用方法:args = parser.parse_args()
                                        al=args.al # develop""")
    # 调用时返回 True 或 False,通过 action 参数设置
    parser.add_argument("-b", "--bl", default=False, action='store_true',
                        help="""action:store_true 只要带参数 -b ,则存储变量值为True,默认是 False;
                                使用案例:python argparse_rgc.py -b     # 值为 True
                                        python argparse_rgc.py        # 值为 False """)
    # 设置 参数值的个数
    parser.add_argument("-c", "--cl", default=None, nargs=3, type=int,
                        help="""args:设置值的个数,可以指定值的类型,并放到一个list中;
                                使用案例:python argparse_rgc.py -c 1 2 3 # 值为 [1,2,3]""")
    # 把一个参数所有的值都放在一个list中,不限制值的个数
    parser.add_argument("-al", "--ar", nargs='*', type=int, help="""nargs:设置为*;
                                                          使用案例:python start.py -al 1 2 3 4 # 值为 [1,2,3,4]""")
    # 读文件
    parser.add_argument("-f", "--infile", default=sys.stdin, nargs='?', type=argparse.FileType('r'),
                        help="""type参数设置为FileType('r')
                                使用案例:python start.py -f file.txt # <_io.TextIOWrapper name='<stdin>' mode='r' encoding='utf-8'>
                                """)
    # 设置 获取变量的变量名
    parser.add_argument("-d", "--de", dest='des', nargs='*', help="""dest参数设置为 需要的变量名;
                                                                     使用案例:python start.py -d iero
                                                                             args = parser.parse_args()
                                                                             dest= args.des """)
    
    args = parser.parse_args()
    print(args)

    其他参数解析包如下:

    sys.argv

    optparse

    官方网址:

    https://docs.python.org/3/library/argparse.html#argparse.ArgumentParser.parse_args

  • 相关阅读:
    Scala学习十二——高阶函数
    Scala学习十一——操作符
    Scala学习十——特质
    Scala学习九——文件和正则表达式
    Scala学习八——继承
    Scala学习七——包和引入
    Scala学习六——对象
    Scala学习五——类
    Scala学习四——映射和数组
    Spark Broadcast内幕解密:Broadcast运行机制彻底解密、Broadcast源码解析、Broadcast最佳实践
  • 原文地址:https://www.cnblogs.com/rgcLOVEyaya/p/RGC_LOVE_YAYA_964days.html
Copyright © 2020-2023  润新知