python2.7

手册地址:https://docs.python.org/2/howto/argparse.html#id1

实现效果:脚本程序可以带参数

python arg.py -h

一、位置参数

示例代码:

 import argparse        
parser = argparse.ArgumentParser()     # 实例化
parser.add_argument("square", help="display a square of a given number",
type=int)   #  名称  help  帮助信息   type  接受参数类型,默认为字符串
args = parser.parse_args()    #接受的参数
print args.square**2

使用

 $ python prog.py 4
16
$ python prog.py four
usage: prog.py [-h] square
prog.py: error: argument square: invalid int value: 'four'

二、可选参数

实例代码

 import argparse
parser = argparse.ArgumentParser()
parser.add_argument("-v", "--verbose", help="increase output verbosity",
action="store_true")   # action 为"store_true"或"store_false"
args = parser.parse_args()
if args.verbose:     #注意verbose,和前面名字相同
print "verbosity turned on"

使用

 $ python prog.py -v
verbosity turned on
$ python prog.py --help
usage: prog.py [-h] [-v] optional arguments:
-h, --help show this help message and exit
-v, --verbose increase output verbosity

三、混合类型

实例代码

 import argparse
parser = argparse.ArgumentParser()
parser.add_argument("square", type=int,
help="display a square of a given number")
parser.add_argument("-v", "--verbosity", action="count", default=0,
help="increase output verbosity")  
args = parser.parse_args()
answer = args.square**2
if args.verbosity >= 2:
print "the square of {} equals {}".format(args.square, answer)
elif args.verbosity >= 1:
print "{}^2 == {}".format(args.square, answer)
else:
print answer
可以增加choices=[0, 1, 2]选项

使用
 $ python prog.py 4 -vvv
the square of 4 equals 16
$ python prog.py 4 -vvvv
the square of 4 equals 16
$ python prog.py 4
16

四、增加冲突选项,多个选项只能选一个
 import argparse

 parser = argparse.ArgumentParser(description="calculate X to the power of Y") #描述
group = parser.add_mutually_exclusive_group()
group.add_argument("-v", "--verbose", action="store_true")
group.add_argument("-q", "--quiet", action="store_true")
parser.add_argument("x", type=int, help="the base")
parser.add_argument("y", type=int, help="the exponent")
args = parser.parse_args()
answer = args.x**args.y if args.quiet:
print answer
elif args.verbose:
print "{} to the power {} equals {}".format(args.x, args.y, answer)
else:
print "{}^{} == {}".format(args.x, args.y, answer)

使用

 python prog.py --help   #prog.py为脚本名称
usage: prog.py [-h] [-v | -q] x y calculate X to the power of Y positional arguments:
x the base
y the exponent optional arguments:
-h, --help show this help message and exit
-v, --verbose
-q, --quiet
 

最新文章

  1. 对C#泛型实例化对像
  2. position导致Safari工具栏不自动隐藏
  3. hibernate通过xml配置文件实现表与实体的映射
  4. CRM-性能测试报告
  5. js_event.keycode值大全
  6. 域名解析-delphi 源码
  7. CSS 概览(CSS2.1)更新时间2014-0406
  8. Web开发者需具备的8个好习惯
  9. mysql的一些特殊命令
  10. Windows 10 IoT Serials 5 - 如何为树莓派应用程序添加语音识别与交互功能
  11. python 分支语句 循环语句
  12. Request.QueryString("id")与Request("id")区别
  13. iPad web APP 开发相关
  14. dedecms织梦网站图片集上传图片出现302错误图片提示怎么解决 已测
  15. MyEclipse中设置注释模板的方法
  16. jquery 3.4.0
  17. exshop第6天
  18. jdk_1_8_1
  19. vue中的插槽slot
  20. MFC自定义控件如何向父窗口发送自定义消息

热门文章

  1. Bootstrap学习-其它内置组件
  2. SQL查询父节点下的所有子节点(包括子节点下的子节点,无限子节点)
  3. 地址栏输入url按回车之后发生了什么
  4. ThinkPHP在入口文件中判断是手机还是PC端访问网站
  5. time 和 datetime 模块
  6. element-ui tree组件 return span 标签报错
  7. Linux学习笔记(1)linux的开关机及重启
  8. web.xml文件配置说明
  9. VMware虚拟机NAT模式的具体配置
  10. iOS UIWindow 与 windowLevel 学习