argparse的相关解释
关于argparse
的内容有很多,很多pytorch
代码上都用到了这个python官方推荐的命令行解析包。所以在这里简单学习一下,回头记起来可以看一看。
首先,argparse
是在自己写程序的时候用的,作用是在使用命令行运行程序时,可以让程序接收命令行传过来的参数。比如我们在linux
系统中,经常会使用的一个命令是ls
,我们在后面加上加上一些参数,比如ls -l
,可以输出当前目录的文件和文件夹的详细信息。如果我们想让自己的程序在命令行中运行的时候可以加上相关的参数,就用到了argparse
这个python官方模块。下面这个程序名称是demo.py:
import argparse
def main():
parser = argparse.ArgumentParser(description="Demo of argparse")
parser.add_argument('-n','--name', default=' Li ')
parser.add_argument('-y','--year', default='20', help='year')
args = parser.parse_args()
print(args)
name = args.name
year = args.year
print('Hello {} {}'.format(name,year))
if __name__ == '__main__':
main()
我们首先新建了一个ArgumentParser
对象parser
,ArgumentParser
叫做命令行解释器,description
描述了parser
这个对象的相关信息。然后我们调用parser
的方法add_argument
,新建了两个参数name
和year
。注意,一般系统默认--
后面对应的是参数的名称,并且-n
和--name
表示的是同一个参数,在命令行输入的时候,两者是等效的,只不过在新建参数的时候有一个参数名称上的区别。最后采用对象的parse_args方法
获取解析的参数并赋值给args
,args
是一个Namespace
类型的对象,它里面有几个属性,就是我们添加的属性了。然后程序就能获得命令行传过来的参数了。我们可以自己选择接下来要进行的操作。