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

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

相关推荐

  • 何为真正意义的自由呢?

    能够有机会探讨自由,也是乐事。 说「知足」就可能获得自由,有一定道理。 但是,这从“人生最好的状态便是以出世之心做入世之事”这个顺序恰好是反向的。也就是说,人在出世之际本是自由的,…

    用户投稿 2023-05-06
  • 小说里的宠物系男友大盘点

    〔编者〕 宠物系男友相信大家对这个词很熟悉了 忠犬系、猫系男友 萌得小姑娘们都忍不住想要带回家 话说回来,其实除了大家耳熟能详的 其实“宠物系男友”远不止这两类噢 今天小编特别整理…

    2023-09-23
  • 去张家界游玩需要几天,游玩整个张家界,大概需要几天时间

      张家界景区很多而且复杂,相隔都挺远的 都是独立需要购买门票的 想把张家界、凤凰古城所有的景区游玩得5-6天时间。我给大家介绍下:   1、张家界核心景区武陵源门票248元人(张…

    2022-12-10
  • 鱼睡不睡觉

    首先鱼不仅睡觉而且还是睁着眼睛睡觉甚至摆动; 鱼类为脊椎动物的一员,所有的脊椎动物都需要休息,以便恢复中枢神经系统与肢体的疲劳; 由于鱼没有真正的眼睑,所以很多人认为鱼不睡觉造成了…

    2022-12-22
  • 汉武帝是谁的儿子

    大名鼎鼎的汉武帝刘彻其实是汉景帝的第十个儿子,他之所以能当上皇帝,应该说完全是三个女人把他扶上去的。 汉武帝刘彻是我国历史上非常著名的皇帝之一,史学家常以“秦皇汉武”并称,秦始皇第…

    2022-12-01
  • 真的有人想让腾讯微博代替新浪微博吗知乎

    前几天差评君在刷微博的时候发现了这么个奇葩话题 ↓ 对,你没看错,在新浪微博超话列表里,居然混进了一个名为「 腾讯微博 」的超话。 这就像微信钱包里多了个「 支付宝支付 」,像淘宝…

    2022-11-28
  • 马伊琍和文章离婚后过得好吗(马伊琍和文章谁更火)

    五年前,从文章出轨就能看出,和马伊琍的这段婚烟不会长久,离婚是必然的! 婚烟不易,且行且珍惜 从2008年结婚到现在,两个人一起走过了11年,还生了两个孩子,这看起来是很幸福的事!…

    2023-02-21
  • 34岁李彩桦近况,李彩桦38岁

    被7个男人吃灭,然后嫁给富豪骗钱骗色,38岁老李彩桦太无奈了 《回家的诱惑》成为经典剧, 剧中的场景和台词至今仍被模仿。 其中,干涉闺蜜婚姻、差点害死闺蜜的艾丽, 坏得让人咬牙切齿…

    2023-09-28
  • 只有持之以恒,才能收获真正的改变和成功英语

    相信奇迹,踏上新的征程 在繁忙的都市里,有一个年轻人叫小明,他是一名普通的上班族。每天早上,他准时起床,匆匆忙忙地赶往地铁,然后奋力工作,度过纷繁复杂的一天。 然而,他的心里一直有…

    用户投稿 2023-08-24
  • 火影忍者700

    11月10日发售的第50期JUMP中,将刊载「火影忍者」最后一期。而且作为完结篇,JUMP给到了卷头&表纸&全中彩的福利,同时内容上也是两话刊载!第700话完结确定…

    2022-11-20