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

 

posted @ 2019-03-01 17:19  RGC  阅读(703)  评论(0编辑  收藏  举报