argparse模块使用方法
1、介绍
argparse是python用于解析命令行参数和选项的标准模块,用于代替已经过时的optparse模块。
2、使用步骤
2.0 模块代码主要步骤
- import argparse # 导入模块,这个没什么说的
- parser = argparse.ArgumentParser() # 实例化一个对象,默认参数一堆,一般情况下只设置description参数就可。
- parser.add_argument() # 一次加入每一个参数或选项,主要是这里
- parser.parse_args() # 获取参数,用的时候给他赋个值
2.1实例化parser对象
import argparse
# 先不添加参数
parser = argparse.ArgumentParser(description='parse the parameter')
# 打印一下所有参数
args = parser.parse_args()
上面的例子运行后,由于没有添加任何参数,所以看不出什么。不过可以加上-h 或 --help 运行一下,会显示我们自定义的description的内容,以及默认的help的内容
eric@EricdeMacBook-Pro WorkSpace % python demo1.py -h
usage: demo1.py [-h]
parse the parameter
optional arguments:
-h, --help show this help message and exit
ArgumentParser选项可以有基本的description,也可以自定义脚本的文件名在 usage 里的显示名称。
import argparse
parser = argparse.ArgumentParser(description='parse the parameter',prog='demo2.py')
args = parser.parse_args()
#----------------------------------------------------------------------------------
eric@EricdeMacBook-Pro WorkSpace % python demo1.py -h
usage: demo2.py [-h]
parse the parameter
optional arguments:
-h, --help show this help message and exit
2.2 parse对象添加参数
调用add_argument()方法是,设置关键参数help,来添加参数说明。
话不多说,先上一个使用了各种选项的例子,我们通过例子来解释说明各个选项的含义和基础用法。
import argparse
def parse():
parse = argparse.ArgumentParser(description="argparse module demo for eric")
parse.add_argument("-f",help='demo foo',dest='foo',action='store',required=True,default='foo1')
parse.add_argument("--bar",help='demo bar, default = %(default)s',default='bar1')
parse.add_argument('-e',help='is enabled',action='store_true', dest="isenabled")
parse.add_argument('-n',help='demo number',default=3,dest='number',type=int)
args = parse.parse_args()
return args
def main():
args=parse()
print(args.foo + " " + args.bar + " " + str(args.isenabled) + " " + str(args.number))
if __name__ == '__main__':
print("start the demo programe")
main()
运行后的结果为:
eric@EricdeMacBook-Pro WorkSpace % python demo.py -h
start the demo programe
usage: demo.py [-h] -f FOO [--bar BAR] [-e] [-n NUMBER]
argparse module demo for eric
optional arguments:
-h, --help show this help message and exit
-f FOO demo foo
--bar BAR demo bar, default = bar1
-e is enabled
-n NUMBER demo number
#------------------------------------------------------------------
eric@EricdeMacBook-Pro WorkSpace % python demo.py -f foo
start the demo programe
foo bar1 False 3
#------------------------------------------------------------------
eric@EricdeMacBook-Pro WorkSpace % python demo.py -f foo --bar eric -n 1
start the demo programe
foo eric False 1
#------------------------------------------------------------------
eric@EricdeMacBook-Pro WorkSpace % python demo.py -f foo -e
start the demo programe
foo bar1 True 3
- --bar: 则 --bar后面的参数直接赋值给args.bar,不需要额外指定参数名
- -f:若为1个 “-”,则需要增加 dest='foo' 来指定参数名,则可以通过args.foo来获取参数值
- help: 为usage里的选项解释
- action: 默认为“store”,当为“store_true” or “store_false" 时,参数必须为boolean值,可以用于某些开关参数。
- default: 参数默认值,当参数未被传入时则使用默认值
- required: 是否为必加选项
- type: 参数的数值类型,默认为string,type=int or float
2.3 更多高级用法
这里只介绍了满足大部分场景的基础用法,更多高级用法请参考python官方文档: