参数:
1)"--para"
2)help
3)required:是否必须要写,True必须填写
4)choices=[]:列表中是可供选择的元素
5)default:默认值
6)type:输入参数的类型
7)action:只有两个状态,True或者False。在终端出现就表示True。
简单使用步骤;
import argparse
parser = argparse.ArgumentParser() #定义解析器
parser.add_argument() #添加参数
args = parser.parse_args #使用参数
–help
运行程序时,可以使用此参数来查看程序中含有的参数,以及参数的解释,也就是自己在add_argument()的help中添加的内容。
(base) yjys@yjys-MS:~/PycharmProjects/ACNet/test$ python argsparse_test.py --help
usage: argsparse_test.py [-h] [-o]
optional arguments:
-h, --help show this help message and exit
-o, --output use output to choice
参数
参数包含位置参数与可选参数,位置参数不带横杠,而可选参数带横杠,如果是短参数用一个横杠,长参数用两个横杠。
import argparse
parser = argparse.ArgumentParser()
parser.add_argument("-v", "--verbose", help="increase output verbosity")
parser.add_argument("square", help="display a square of a given number")
args = parser.parse_args()
'''
位置参数:
按照位置赋值即可,不需要按照格式书写,如 square 12,这样会报错。
可选参数:
代码中-v或者--verbose属于可选参数,也就是可以在终端赋值,也可以不赋值。
赋值时 需要按照格式,如-v 12 或者 --verbose 12;
不赋值时 默认赋值为None,此时不能进行比较大小等,只能用于判断。或者可以在default参数中将其赋值为0。
'''
type=
import argparse
parser = argparse.ArgumentParser()
parser.add_argument("square", type=int, help="display a square of a given number")
args = parser.parse_args()
answer = args.square**2
print(answer)
'''
由于终端直接输入的数字将其当作字符串,因此需要定义其类型。type=int。
'''
action=
设置此项的参数在程序中只有两个状态,True或者False。
而在终端使用时,不需要赋值,出现参数即设置为True,不出现就设置为False。
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('-o',"--output", help='use output to choice', action='store_true')
args = parser.parse_args()
if args.output:
print('true')
else:
print('false')
#Terminal:
(base) yjys@yjys-MS:~/PycharmProjects/ACNet/test$ python argsparse_test.py
false
(base) yjys@yjys-MS:~/PycharmProjects/ACNet/test$ python argsparse_test.py -o
true
default=
如果终端没有输入参数,那么就使用default的值,否则使用终端的值。
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('-n', '--number', help='input a number', default=12)
args = parser.parse_args()
print(args.number)
#Terminal
(base) yjys@yjys-MS:~/PycharmProjects/ACNet/test$ python argsparse_test.py
12
(base) yjys@yjys-MS:~/PycharmProjects/ACNet/test$ python argsparse_test.py -n 55
55
choice=[]
使用此参数时需要注意,如果可选参数是数字时,需要定义其类型为int型。否则会出错。
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('-c', '--case', help='choice',choices=[1,2,3], type=int)
args = parser.parse_args()
if args.case==1:
print('1')
elif args.case==2:
print('2')
else:
print('3')
#Terminal
(base) yjys@yjys-MS:~/PycharmProjects/ACNet/test$ python argsparse_test.py -c 2
usage: argsparse_test.py [-h] [-o] [-n NUMBER] [-c {1,2,3}]
argsparse_test.py: error: argument -c/--case: invalid choice: '2' (choose from 1, 2, 3)#此处出错,因为刚开始没有定义type=int
(base) yjys@yjys-MS:~/PycharmProjects/ACNet/test$ python argsparse_test.py -c 2
2
(base) yjys@yjys-MS:~/PycharmProjects/ACNet/test$ python argsparse_test.py -c 1
1
dest=
此参数将终端中使用的-q等与args.world对应起来了,也就是说实际程序中使用的参数和终端中输入的参数可以不同名,此时通过dest参数可以对应起来。
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('-q', dest='world', type=int)
args = parser.parse_args()
print(args)
#Terminal
(base) yjys@yjys-MS:~/PycharmProjects/ACNet/test$ python argsparse_test.py -c 1 -q12
Namespace(case=1, number=12, output=False, world=12)