python命令行解释器 argparse

时间:2022-12-09 16:34:52

一: argparse介绍

1.  argparse

argparse,它是Python标准库中推荐使用的编写命令行程序的工具

有三个功能: 

-处理可选位置参数
-生成详细的使用说明
-支持分派到子解析器的解析器

parser = argparse.ArgumentParser()  创建一个实例,
#parser.parse_args()    parse_args方法是从命令行的参数中返回了一些默认或指定的参数信息。
#print dir(parser)
parser.add_argument('square',help=' **2 ',type = int)  添加一个positional arguments(暂时不明白它的意思)

注: 这里参数的类型目前有两类: positional arguments   optional arguments
#parser.add_argument('-t', metavar='THREADS', type=int, default=20,
#                        help='Num of scan threads for each scan process, 20 by default')
上面的方式可以把选项添加到optional参数中。

args = parser.parse_args()
print args.square **2   注意这里,args.xxx,xxx必须是add_argument添加的参数名称

2.  add_argument 方法

add_argument:读入命令行参数,该调用有多个参数
ArgumentParser.add_argument(name or flags…[, action][, nargs][, const][, default][, type][, choices][, required][, help][, metavar][, dest])

name or flags:是必须的参数,该参数接受选项参数或者是位置参数(一串文件名)

"""

>>> pp = argparse.ArgumentParser()
>>> pp.add_argument('-a',type=int,default = 1234567)
_StoreAction(option_strings=['-a'], dest='a', nargs=None, const=None, default=1234567, type=<type 'int'>, choices=None, help=None, metavar=None)
>>> args = pp.parse_args()
>>> args
Namespace(a=1234567)
>>> dir(args)
['__class__', '__contains__', '__delattr__', '__dict__', '__doc__', '__eq__', '__format__', '__getattribute__', '__hash__', '__init__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', '_get_args', '_get_kwargs', 'a']
>>> print args.a
1234567
>>>

"""

 

https://docs.python.org/2/howto/argparse.html#id1

中文参考:

http://songpengfei.iteye.com/blog/1440158          介绍argparse模块的每个参数            

http://blog.chinaunix.net/xmlrpc.php?r=blog/article&uid=21633169&id=4387657  对add_argument方法介绍的较为详细