argparse使用方法简单总结
argparse是python自带的命令行参数解析包,可以用来方便地读取命令行参数,当你的代码需要频繁地修改参数的时候,使用这个工具可以将参数和代码分离开来,让你的代码更简洁,适用范围更广。
argparse的使用方法比较简单,下面使用python3为例,逐步讲解它的使用方法。
1.基本方法
import argparse
def main():
parser = argparse.ArgumentParser(description="Demo of argparse")
parser.add_argument('-n','--name', default=' Li ')
args = parser.parse_args()
print(args)
name = args.name
print('Hello {}'.format(name))
if __name__ == '__main__':
main()
上面的函数就是实现argparse功能的基本的框架。首先我们要导入argparse相关的包,然后通过argparse.ArgumentParser
生成对象,description
是在命令行模式时显示帮助信息。之后我们通过parser.add_argument
向该对象中添加你要关注的命令行参数和选项。我们通过加入了–name这个参数,default
表示没有参数传输进来的时候我们默认使用"Li"。最后我们使用parser.parse_args
进行解析。
在命令行执行语法及输出结果
$ python test.py
Namespace(name=' Li ')
Hello Li
我们也可以直接给参数赋值
$ python test.py --name YA
Namespace(name='YA')
Hello YA
上面就是argparse使用的基本流程,下面我将介绍一下add_argument常用的基本参数,以方便我们的具体使用和理解
2. default
当我们没有输入参数的时候,就传入default的默认参数。
3. help
帮助值是一个字符串,包含参数的简短描述。当用户请求帮助时(通常在命令行使用-h
或--help
),这些帮助描述将与每个参数一起显示。
import argparse
def main():
parser = argparse.ArgumentParser(description="Demo of argparse")
parser.add_argument('-n','--name', default=' Li ',help="Enter the name")
args = parser.parse_args()
print(args)
name = args.name
print('Hello {}'.format(name))
if __name__ == '__main__':
main()
在命令行加-h
或--help
参数运行该命令,可以获取帮助信息,结果如下
$ python test.py --help
usage: test.py [-h] [-n NAME]
Demo of argparse
optional arguments:
-h, --help show this help message and exit
-n NAME, --name NAME Enter the name
4. type
默认情况下,ArgumentParser对象以简单字符串的形式读取命令行参数。然而,通常命令行字符串应该被解释为另一种类型,比如float或int。add_argument()
的type关键字参数允许执行任何必要的类型检查和类型转换。下面我们以打印A+B(A=2,B=5,type = float)方式来说明:
import argparse
def main():
parpse = argparse.ArgumentParser(description="Demo of arfparse")
parpse.add_argument("-A",default = "2",type = float)
parpse.add_argument("-B",default = "5",type = float)
args = parpse.parse_args()
print("A+B:{} + {} = ".format(args.A,args.B),args.A + args.B)
if __name__ == '__main__':
main()
结果为
$ python test.py
A+B:2.0 + 5.0 = 7.0
5. dest
大多数ArgumentParser操作都添加一些值作为parse_args()
返回的对象的属性。此属性的名称由add_argument()
的dest关键字参数决定。对于位置参数操作,dest
通常作为add_argument()
的第一个参数,也就是-或者–后面的第一个参数,也可以用dest=
去定义。一个官网的例子
import argparse
def main():
parser = argparse.ArgumentParser(description="Demo of arfparse")
parser.add_argument('--foo', dest='bar')
return parser
if __name__ == '__main__':
print(main().parse_args('--foo XXX'.split()))
结果过为
$ python test.py
Namespace(bar='XXX')
以上就是对argparse使用的简单总结,愿你有所收获。
参考