天天看点

argparse的基本用法

主要参考了网上的一些博文,在复现医学图像分割的深度学习论文的时候,发现师兄很喜欢用这个函数,一开始还不是很理解,所以今天来彻底弄明白到底是个啥东西。

定义&用途

argparse是python自带的命令行参数解析包,可以用来方便地读取命令行参数,使用比较简单。

基本框架

采用argparse获取用户的名字及年龄,因为比较简单所以是在linux上用vim编辑器写的python文件,文件命名为:test.py。

import argparse

def main():
	p = argparse.ArgumentParser("description="Demo of argparse"")
	p.add_argument('-n', '--name', default='Li')
	p.add_argument('-y', '-year', default='20')
	args = p.parse_args()
	print(args)
	name = p.name
	year = args.year
	print('Hello {} {}'.format(name, year))

if __name__ == "__main__":
	main()
           

写好后保存退出,执行命令:

python test.py
           

结果如下:

argparse的基本用法

  1. 在上面的代码中,我们首先是导入了一个名为

argparse

的包,然后使用了argparse包中的一个类

ArgumentParser

生成了一个

parser

对象(参数解析器),即

p

。其中,

description

是用来描述这个参数解析器的用途,当在命令行显示帮助信息的时候会看到description描述的信息。

  2. 接着我们使用对象的

add_argument

方法来增加参数。在这段代码中我们增加了两个参数

name

year

,其中

-n

--name

表示同一个参数,

default

表示我们在运行命令的时候如果没有提供参数,程序会将此值当作参数值。

  3. 最后采用对象的

parse_args

方法获取解析的参数,由结果图可以看到,

Namespace

中有两个属性(或者说成员)。

P.S. 当

'-'

'--'

同时出现的时候,系统默认后者为参数名,前者不是,但是在命令行输入的时候没有这个区分。

当执行命令:

结果如下图:

argparse的基本用法

本文主要参考argparse基本用法