python argpase模块简单使用

Posted hb91

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python argpase模块简单使用相关的知识,希望对你有一定的参考价值。

python2.7

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

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

python arg.py -h

 

一、位置参数

示例代码:

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

使用

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

 

二、可选参数

实例代码

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

使用

1 $ python prog.py -v
2 verbosity turned on
3 $ python prog.py --help
4 usage: prog.py [-h] [-v]
5 
6 optional arguments:
7   -h, --help     show this help message and exit
8   -v, --verbose  increase output verbosity

 

三、混合类型

实例代码

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

使用
1 $ python prog.py 4 -vvv
2 the square of 4 equals 16
3 $ python prog.py 4 -vvvv
4 the square of 4 equals 16
5 $ python prog.py 4
6 16

 



四、增加冲突选项,多个选项只能选一个
 1 import argparse
 2 
 3 parser = argparse.ArgumentParser(description="calculate X to the power of Y") #描述
 4 group = parser.add_mutually_exclusive_group()
 5 group.add_argument("-v", "--verbose", action="store_true")
 6 group.add_argument("-q", "--quiet", action="store_true")
 7 parser.add_argument("x", type=int, help="the base")
 8 parser.add_argument("y", type=int, help="the exponent")
 9 args = parser.parse_args()
10 answer = args.x**args.y
11 
12 if args.quiet:
13     print answer
14 elif args.verbose:
15     print "{} to the power {} equals {}".format(args.x, args.y, answer)
16 else:
17     print "{}^{} == {}".format(args.x, args.y, answer)

使用

 1 python prog.py --help   #prog.py为脚本名称
 2 usage: prog.py [-h] [-v | -q] x y
 3 
 4 calculate X to the power of Y
 5 
 6 positional arguments:
 7   x              the base
 8   y              the exponent
 9 
10 optional arguments:
11   -h, --help     show this help message and exit
12   -v, --verbose
13   -q, --quiet

 

 

以上是关于python argpase模块简单使用的主要内容,如果未能解决你的问题,请参考以下文章

用python实现自动发邮件的功能

妙啊,这14个经典的 Python 代码模块真香

python 用于在终端中运行的sublime text 3的简单代码片段制作工具

如何有条件地将 C 代码片段编译到我的 Perl 模块?

Python 常用模块学习

nodejs常用代码片段