命令行参数解析,按键精灵命令行参数

1.argparse模块简介

  • argparse是python标准库里面用来处理命令行参数的库;
  • 大多数情况下,脚本很可能需要多个参数,而且每次参数的类型用处各不相同,那么这个时候在参数前添加标签表明参数的类型和用途便十分有用,而利用argparse模块可以很方便得实现这一目的;

2.argparse模块的使用步骤

# 导入模块import argparse# 此函数作用为:自定义打印帮助信息,且可以通过转义符号带颜色打印def print_help_description(): print('33[1;35m这里可以打印你的参数规则33[0m') print('33[1;35m脚本执行示例: python server.py -s=nginx -a=running33[0m')# 实例化parser解析对象parser = argparse.ArgumentParser(add_help=False) # False表示不显示帮助信息# 给parser对象绑定参数parser.add_argument('-h', "--help", help="33[1;36m显示脚本帮助信息33[0m", action='store_true', )parser.add_argument('-s', "--service",help="33[1;36mmysql, httpd, nginx, redis, mongodb 33[0m", )parser.add_argument('-a', "--application",help="33[1;36mhealth, ping, running, 33[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()
  • import argparse 首先导入模块;
  • parser = argparse.ArgumentParser() 创建一个解析对象;
  • parser.add_argument() 向该对象中添加你要关注的命令行参数和选项;
  • parser.parse_args() 进行解析;

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);
  • prog:程序的名字(默认:sys.argv[0]);
  • usage: 描述程序用法的字符串(默认:从解析器的参数生成);
  • description: 参数帮助信息之前的文本(默认:空);
  • epilog :参数帮助信息之后的文本(默认:空);
  • parents :ArgumentParser 对象的一个列表,这些对象的参数应该包括进去;
  • formatter_class:定制化帮助信息的类;
  • prefix_chars:可选参数的前缀字符集(默认:‘-‘);
  • fromfile_prefix_chars:额外的参数应该读取的文件的前缀字符集(默认:None);
  • argument_default:参数的全局默认值(默认:None);
  • conflict_handler:解决冲突的可选参数的策略(通常没有必要);
  • add_help:给解析器添加-h/–help 选项(默认:True);

4.add_argument()方法参数

add_argument(name or flags...[, action][, nargs][, const][, default][, type][, choices][, required][, help][, metavar][, dest]);
  • name or flags:指定参数的形式,想写几个写几个,不过我们一般就写两个,一个短参数一个长参数,例如 ”-f”, “–file”;
  • action: 命令行遇到参数时的动作,默认值是 store;
  • nargs :指定这个参数后面的value有多少个;
  • const : action 和 nargs 所需要的常量值;
  • default :不指定参数时的默认值;
  • type :命令行参数应该被转换成的类型;
  • choices :参数可允许的值的一个容器;
  • required :可选参数是否可以省略 (仅针对可选参数);
  • help :参数的帮助信息,当指定为 argparse.SUPPRESS 时表示不显示该参数的帮助信息;
  • metavar :在 usage 说明中的参数名称,对于必选参数默认就是参数名称,对于可选参数默认是全大写的参数名称;
  • dest :解析后的参数名称,默认情况下,对于可选参数选取最长的名称,中划线转换为下划线;

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

本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:dandanxi6@qq.com

(0)
上一篇 2023-12-17 15:36
下一篇 2023-12-18 12:25

相关推荐

  • 乒乓球决赛日本队员(乒乓球男子团体决赛中国队pk日本)

    原创乒乓球总决赛:日本队全军覆没!国乒小将立大功,3-2逆转强敌。近年来,中国乒乓球队在国际赛场上一直是无可争议的霸主。然而最近一年,随着世界各国乒乓球水平的不断提高,中国乒乓球队…

    2024-01-08
  • 彝族祝福词(彝族常用祝福语大全)

    布摩,一词来源于彝语,是彝语的音译词。布摩在传统彝族社会里有着很高的地位,他的身份类似于汉族的国师,又类似于祭司,也是文化人,因此汉语中无法有一个职位和布摩等同,因而选用音译的形式…

    用户投稿 2023-01-20
  • 堵漏王真的可以防漏水吗

    首先我们要知道现在堵漏王最大的缺点是什么? 传统堵漏王最大的缺点是什么呢?众所周知,堵漏王主要用于工程管材套管回填找平,厨卫阳台防水抗渗。传统堵漏王的缺点是固化时间短无法大面积施工…

    2023-01-29
  • 现在小说作家在哪个平台写比较好

    发布小说可以选择的平台有很多,但是真正适合自己的确是没几个。 在选择平台时要考虑的因素有很多,如:自己的文风适不适合这个平台,笔力、更新速度是否能跟上这个平台的最低要求,责编手上的…

    2023-02-19
  • 参加跳伞活动(七夕仙女跳伞)

    跳伞讲究天时地利人和。我曾在里斯本坐四小时车去南葡跳伞,到了营地,教练说,今天航空管制,跳不了。我又找到了距巴黎150公里的圣康坦基地。那是座小城,城外是一望无际的农田和风车。我刚…

    2023-12-28
  • 乒乓球大满贯三大赛几年一次

    乒乓球大满贯,指获得了乒乓球三大赛的冠军,包括奥运会冠军(4年一届)、世乒赛冠军(2年一届)、乒乓球世界杯冠军(一年一届),截止到2021年世乒赛结束,乒联共产生了10个大满贯球员…

    2023-07-21
  • 世界三大奇观钱塘江大潮和什么,在杭州看钱塘江大潮最佳时间

    钱塘江大潮是怎么样形成的?为什么八月中秋涨大潮呢?这主要是天体引力、地形、风力作用、水文特征等多种因素共同作用的结果。 在所有的影响因素中,天体引力是主要因素,也是海水涨潮的主因。…

    2023-01-23
  • 每日复盘最强行业,每日复盘一个行业

    这是2月25号撒加在成长会以QQ语音新形式进行分享的总结。撒加为大家分享了他个人在提问方面的一些见解,用生动活泼的例子告诉我们提问也是充满智慧的。分享结束后大家也现学现用,提出了一…

    2022-12-22
  • 凤凰涅槃浴火重生意思(凤凰涅槃图片)

    12月28日,在古县经济开发区涧河工业园区,山西盛隆泰达新能源公司192万吨/年炭化室高度7.6米顶装焦化技改项目(以下简称年产192万吨焦化技改项目),圆满完成了干燥升温烘炉仪式…

    用户投稿 2023-03-17
  • 华为p9麒麟950,华为p95g多少钱

    中关村在线消息:随着华为Mate 8的正式登场,华为旗下P系列新机华为P9又成了不少人期待的对象。近日有相关人士爆料,华为P9将采用双摄像头设计,但指纹识别传感器在手机背面,机身侧…

    2023-10-24