Python小推车python学习

Python学习打call第二十七天:命令行参数解析

2019-02-27  本文已影响1人  暖A暖

1.argparse模块简介

2.argparse模块的使用步骤

# 导入模块
import argparse

# 此函数作用为:自定义打印帮助信息,且可以通过转义符号带颜色打印
def print_help_description():
    print('\033[1;35m这里可以打印你的参数规则\033[0m')
    print('\033[1;35m脚本执行示例: python server.py -s=nginx -a=running\033[0m')

# 实例化parser解析对象
parser = argparse.ArgumentParser(add_help=False) # False表示不显示帮助信息

# 给parser对象绑定参数
parser.add_argument('-h', "--help", help="\033[1;36m显示脚本帮助信息\033[0m", action='store_true', )
parser.add_argument('-s', "--service",help="\033[1;36mmysql, httpd, nginx, redis, mongodb \033[0m", )
parser.add_argument('-a', "--application",help="\033[1;36mhealth, ping, running, \033[0m")


# 解析参数
args = parser.parse_args()

# 开始对脚本传递的参数进行判断
if not args.service or not args.application: # 如果两个条件都为False,才会进入帮助信息的打印
    parser.print_help() # 打印帮助信息
    print_help_description()  # 打印自定义函数
else:
    if args.service == 'mysql':
        if args.application == 'health':
            print('check health')
        elif args.application == 'ping':
            print('check ping')
        elif args.application == 'running':
            print('check running')
        else:
            parser.print_help()
            print_help_description()
    elif args.service == 'httpd':
        if args.application == 'health':
            print('check health')
        elif args.application == 'ping':
            print('check ping')
        elif args.application == 'running':
            print('check running')
        else:
            parser.print_help()
            print_help_description()
    else:
        parser.print_help()
        print_help_description()

3.ArgumentParser()方法参数

ArgumentParser(prog=None, usage=None,description=None, epilog=None, parents=[],formatter_class=argparse.HelpFormatter, prefix_chars='-',fromfile_prefix_chars=None, argument_default=None,conflict_handler='error', add_help=True);

4.add_argument()方法参数

add_argument(name or flags...[, action][, nargs][, const][, default][, type][, choices][, required][, help][, metavar][, dest]);

参考:侠课岛(9xkd.com)Python同学计划

上一篇 下一篇

猜你喜欢

热点阅读