argparse是python语言内置的一个 关于参数设定 的函数
其基本形式如下,
import argparse
def get_parser():
parser = argparse.ArgumentParser(description="inpunt your name, this is the description of this parser function")
parser.add_argument('name', metavar='NAME',default='like',type=str,help='input your name')
#parser.add_argument('-name', metavar='NAME',default='like',type=str,help='input your name')
return parser
if __name__ == '__main__':
parser = get_parser()
args1 = parser.parse_args()
name = args1.name
print('Hello {}'.format(name))
然后在终端(cmd,terminal)中, cd到py文件的路径,文件名为 test1.py,
输入
python test1.py haobo
如果是用注释中的格式,则是输入
python test1.py -name haobo
最后会得到结果:
Hello haobo
总的来说,最重要的就是第一个参数,即参数名字一定要设定,其他的参数都会有默认中的默认值,像metavar和help 都是帮助自己和读者理解这个参数的含义和使用。
default后面跟的则是自己编写的,在没有参数输入时的默认值
对于一些可以更改的变量如下在变量后都加了数字,
parser = get_parser()
args1 = parser.parse_args()
name2 = args1.name
print('Hello {}'.format(name2))
args1.name中的name也可以更改,只要与最开始定义中的变量名字对应就能成功识别。
所以,如果多个变量,程序可以改成这样:
import argparse
def get_parser():
parser = argparse.ArgumentParser(description="input your name")
parser.add_argument('name1')
parser.add_argument('name2')
return parser
if __name__ == '__main__':
parser = get_parser()
args = parser.parse_args()
name1 = args.name1
name2 = args.name2
print('Hello {} {}'.format(name1,name2))
输入 python test1.py haobo zhang
得到 Hello haobo zhang
前面提到了定义中 -name的方式,还可以使用两个-。即–name。这个方式虽然输入比较麻烦,但是由于参数的输入的位置在默认情况下与参数定义的位置一致,很容易参数对应出错。
比如在上程序中,总是name1在前,name2在后
输入:python test1.py I_love you
输出:Hello I_love you
输入:python test1.py you I_love
输出:Hello you I_love
使用带- 或–的方式定义,结果如下,
输入:python test1.py --name2 you --name1 I_love
输出:Hello I_love you
输入:python test1.py --name1 I_love --name2 you
输出:Hello I_love you
结果相同并且都是I love you xixixix
最后讲一下不在终端怎么输入参数,
点击run中的Edit Configuration, 然后在parameters 一栏按照上面说的输入参数就能得到结果。
参考:
(https://blog.csdn.net/chenguiyuan1234/article/details/84799388)
(https://blog.csdn.net/yy_diego/article/details/82851661)