argparse模块使用方法

1、介绍

argparse是python用于解析命令行参数和选项的标准模块,用于代替已经过时的optparse模块。

2、使用步骤

2.0 模块代码主要步骤

  1. import argparse # 导入模块,这个没什么说的
  2. parser = argparse.ArgumentParser() # 实例化一个对象,默认参数一堆,一般情况下只设置description参数就可。
  3. parser.add_argument() # 一次加入每一个参数或选项,主要是这里
  4. 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官方文档:

https://docs.python.org/zh-cn/3.7/library/argparse.html#

posted @ 2020-11-05 23:45  无知是恶  阅读(352)  评论(0编辑  收藏  举报