本文实例讲述了python中argparse模块用法。分享给大家供大家参考。具体分析如下:

平常在写命令行工具的时候,经常会带参数,所以用python中的argparse来实现。

# -*- coding: utf-8 -*-

import argparse

args = "-f hello.txt -n 1 2 3 -x 100 -y b -z a -q hello @args.txt i_am_bar -h".split()

# 使用@args.txt要求fromfile_prefix_chars="@"

# args.txt文件中应该一行一个参数,想改变行为参考convert_arg_line_to_args()

# ArgumentParser参数的简单说明

## description - 命令行帮助的开始文字,大部分情况下,我们只会用到这个参数

# epilog - 命令行帮助的结尾文字

# prog - (default: sys.argv[0])程序的名字,一般不需要修改,另外,如果你需要在help中使用到程序的名字,可以使用%(prog)s

# prefix_chars - 命令的前缀,默认是-,例如-f/--file。有些程序可能希望支持/f这样的选项,可以使用prefix_chars="/"

# fromfile_prefix_chars - (default: None)如果你希望命令行参数可以从文件中读取,就可能用到。例如,如果fromfile_prefix_chars='@',命令行参数中有一个为"@args.txt",args.txt的内容会作为命令行参数

# add_help - 是否增加-h/-help选项 (default: True),一般help信息都是必须的,所以不用设置啦。

## parents - 类型是list,如果这个parser的一些选项跟其他某些parser的选项一样,可以用parents来实现继承,例如parents=[parent_parser]

## formatter_class - 自定义帮助信息的格式(description和epilog)。默认情况下会将长的帮助信息进行。

#三个允许的值:

# class argparse.RawDescriptionHelpFormatter 直接输出description和epilog的原始形式(不进行自动换行和消除空白的操作)

# class argparse.RawTextHelpFormatter 直接输出description和epilog以及add_argument中的help字符串的原始形式(不进行自动换行和消除空白的操作)

## class argparse.ArgumentDefaultsHelpFormatter 在每个选项的帮助信息后面输出他们对应的缺省值,如果有设置的话。这个最常用吧!

# argument_default - (default: None)设置一个全局的选项的缺省值,一般每个选项单独设置,所以这个参数用得少,不细说

# usage - (default: generated)如果你需要修改usage的信息(usage: PROG [-h] [--foo [FOO]] bar [bar ...]),那么可以修改这个,一般不要修改。

# conflict_handler - 不建议使用。这个在极端情况下才会用到,主要是定义两个add_argument中添加的选项的名字发生冲突时怎么处理,默认处理是抛出异常。

#注释一行有##表示这几个参数比较常用

parser = argparse.ArgumentParser(description="This is a description of %(prog)s", epilog="This is a epilog of %(prog)s", prefix_chars="-+", fromfile_prefix_chars="@", formatter_class=argparse.ArgumentDefaultsHelpFormatter)

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

# add_argument的参数是比较复杂的。。。

# name or flags - 指定参数的形式,想写几个写几个,不过我们一般就写两个,一个短参数,一个长参数,看下面的例子"-f", "--file"

# 可选的选项,位置不固定,想怎么写就怎么写,默认是可选的

parser.add_argument("-f", "--file", help="test test test")

# 位置固定的选项,例如"prog i_am_bar",这样子的话,i_am_bar就是bar选项的值啦,默认是必须有的

parser.add_argument("bar", help="test test test")

# nargs - 指定这个参数后面的value有多少个,例如,我们希望使用-n 1 2 3 4,来设置n的值为[1, 2, 3, 4]

parser.add_argument("-n", "--num", nargs="+", type=int)

# 这里nargs="+"表示,如果你指定了-n选项,那么-n后面至少要跟一个参数,+表示至少一个,?表示一个或0个,*0个或多个,

# default - 如果命令行没有出现这个选项,那么使用default指定的默认值

parser.add_argument("+g", "++gold", help="test test test", default="test_gold")#需要prefix_chars包含"+"

# type - 如果希望传进来的参数是指定的类型(例如 float, int or file等可以从字符串转化过来的类型),可以使用

parser.add_argument("-x", type=int)

# choices - 设置参数值的范围,如果choices中的类型不是字符串,记得指定type哦

parser.add_argument("-y", choices=['a', 'b', 'd'])

# required - 通常-f这样的选项是可选的,但是如果required=True那么就是必须的了

parser.add_argument("-z", choices=['a', 'b', 'd'], required=True)

# metavar - 参数的名字,在显示 帮助信息时才用到.

parser.add_argument("-o", metavar="OOOOOO")

# help - 设置这个选项的帮助信息

# dest - 设置这个选项的值就是解析出来后放到哪个属性中

parser.add_argument("-q", dest="world")

args = parser.parse_args(args) # 如果你没有args参数,那么就使用sys.argv,也就是命令行参数啦。有这个参数,就方便我们调试啊

# args.world就是-q的值啦

# action - The basic type of action to be taken when this argument is encountered at the command line.

# const - A constant value required by some action and nargs selections.

# 这两个自己看帮助文档啦,比较复杂

# http://docs.python.org/library/argparse.html

print args

希望本文所述对大家的Python程序设计有所帮助。

python argparse模块详解_python中argparse模块用法实例详解相关推荐

  1. python编程字典100例_python中字典(Dictionary)用法实例详解

    本文实例讲述了python中字典(Dictionary)用法.分享给大家供大家参考.具体分析如下: 字典(Dictionary)是一种映射结构的数据类型,由无序的"键-值对"组成. ...

  2. python类初始化导入库_Python中optparser库用法实例详解

    本文研究的主要是Python中optparser库的相关内容,具体如下. 一直以来对optparser不是特别的理解,今天就狠下心,静下心研究了一下这个库.当然了,不敢说理解的很到位,但是足以应付正常 ...

  3. python元类的使用_python中元类用法实例

    本文实例讲述了python中元类用法,分享给大家供大家参考.具体方法分析如下: 1.元类(metaclass)是用来创建类的类 2.type(object):返回一个对象的类型,与object.__c ...

  4. python中的super用法详解_Python中super函数用法实例分析

    本文实例讲述了python中super函数用法.分享给大家供大家参考,具体如下: 这是个高大上的函数,在python装13手册里面介绍过多使用可显得自己是高手 23333. 但其实他还是很重要的. 简 ...

  5. python 字典定义日志用法_python中字典(Dictionary)用法实例详解

    本文实例讲述了python中字典(Dictionary)用法.分享给大家供大家参考.具体分析如下: 字典(Dictionary)是一种映射结构的数据类型,由无序的"键-值对"组成. ...

  6. [转载] python里字典的用法_python中字典(Dictionary)用法实例详解

    参考链接: Python字典dictionary copy方法 本文实例讲述了python中字典(Dictionary)用法.分享给大家供大家参考.具体分析如下: 字典(Dictionary)是一种映 ...

  7. python中字典del的用法_python中字典(Dictionary)用法实例详解

    本文展示了字典在python中的使用.分享给大家参考.具体分析如下: 字典是一种映射结构的数据类型,由无序的"键值对"组成.字典的关键字必须是不可改变的类型,如字符串.数字和元组: ...

  8. python中的super用法详解_Python中super的用法实例

    super 是用来解决多重继承问题的,直接用类名调用父类方法在使用单继承的时候没问题,但是如果使用多继承,会涉及到查找顺序(MRO).重复调用(钻石继承)等种种问题.总之前人留下的经验就是:保持一致性 ...

  9. php simplexml_load_file 详解,php中simplexml_load_file函数用法实例讲解

    php中simplexml_load_file函数用法实例讲解 发布于 2015-02-07 06:53:40 | 136 次阅读 | 评论: 0 | 来源: 网友投递 PHP开源脚本语言PHP(外文 ...

  10. python decimal类型转化_python中的decimal类型转换实例详解

    [Python标准库]decimal--定点数和浮点数的数学运算 作用:使用定点数和浮点数的小数运算. Python 版本:2.4 及以后版本 decimal 模块实现了定点和浮点算术运算符,使用的是 ...

最新文章

  1. 【原创】谈谈线上CPU100%排查套路
  2. SpringBoot中使用@Mapper注解需要哪个包
  3. 编程实现算术表达式求值_用魔法打败魔法:C++模板元编程实现的scheme元循环求值器...
  4. c++ set 遍历_47. Set 是如何工作的(3) 遍历顺序是如何确定的?
  5. 微课|Python列表、字典、集合、字符串对象常用方法串讲
  6. osip和mysql_osip2和eXosip2协议
  7. h5聊天工具的开发过程及思路
  8. 玩水——西沙:在海的远处,水是那么蓝那么清
  9. xmind服务器维护,如何使用XMind组织您的待办事项?
  10. Android 如何直播RTMP流
  11. flash中如何制作播放和暂停按钮(as3.0)
  12. linux下使用screen和ping命令对网络质量进行监控
  13. word 分栏后转html,word文档分栏后的页码设置方法
  14. android手机电话铃声设置,怎么设置来电铃声-安卓手机小技巧:教你传输自己喜欢的歌曲铃声到系统铃声设置里...
  15. 在线文档 - Google drive
  16. 关于atmel芯片security bit的取消
  17. 使用Requests爬取猫眼电影
  18. API调用展示,淘宝、天猫、拼多多商品页面详情API,APP端原数据参数返回
  19. ACM学习历程—BestCoder 2015百度之星资格赛1002 列变位法解密(vector容器)
  20. photoshop 雪碧图制作

热门文章

  1. find out the service list changed with given user which have item category group
  2. 如何检测当前的ABAP report是运行在inactive版本下
  3. how does filter for list work in xml view
  4. SM37作业条目的存储表
  5. SAP系统搜索分页的前后台实现
  6. 某互联网公司校园招聘的小组面试题
  7. SAP CRM呼叫中心和社交媒体集成的所有BC set实现列表
  8. 如何从S4HANA的销售订单找到对应的生产订单
  9. webpack里JavaScript文件编译的调试
  10. 如何处理SAP云平台错误消息 there is no compute unit quota for subaccount