python学习——使用argparse参数解释器传递命令行参数

argparse是python中用于传递和解析命令行参数的模块,例如:

从cmd输入命令行

E:15_pythonDEBUG>python fasta_argparse.py -avg -min_len 50  100 10 200 40

回车得到

total length:300.00
average length:150.00

下面用实例介绍一下在python编程是如何使用:

 1 # 第一步,导入argparse模块
 2 import argparse
 3 # 第二步,构建参数解释器
 4 parser = argparse.ArgumentParser(description='This is a example program') 
 5 # 第三步,添加参数,可以是定位参数(例如'chr'),或者可选参数(例如'-min_len'),加有'-'的表示是可选参数
 6 parser.add_argument('chr',
 7                     type=int, # 把从命令行传递的参数转为指定的类型
 8                     nargs='+', # '*'表示输入任意个参数,'+'表示输入1个或多个参数,'?'表示输入0个或1个参数
 9                     help='length for chr')
10 parser.add_argument('-min_len',
11                     type=int,
12                     # default=50
13                     choices=[20,50,100], # 限定-min
14                     required=True, # 限定必须输入-min_len参数
15                     help='min length cutoff for sequence')
16 parser.add_argument('-avg',
17                     action='store_true', #添加开关,即触发参数的动作
18                     help='Turn on average length statistics')
19 
20 # 第四步,解释参数
21 args = parser.parse_args()
22 chr_len = [i for i in args.chr if i > args.min_len] #使用列表生成式对传递的参数进行cut
23 print('total length:{:.2f}'.format(sum(chr_len)))
24 
25 if args.avg:
26     avg_len = sum(chr_len)/len(chr_len)
27     print('average length:{:.2f}'.format(avg_len))
add_argument()常用的参数:
dest:如果提供dest,例如dest="a",那么可以通过args.a访问该参数
default:设置参数的默认值
action:参数触发的动作
store:保存参数,默认
store_const:保存一个被定义为参数规格一部分的值(常量),而不是一个来自参数解析而来的值。
store_ture/store_false:保存相应的布尔值
append:将值保存在一个列表中。
append_const:将一个定义在参数规格中的值(常量)保存在一个列表中。
count:参数出现的次数
version:打印程序版本信息
type:把从命令行输入的结果转成设置的类型
choice:允许的参数值
nargs:命令行参数的个数,一般使用通配符表示,其中,'*'表示输入任意个参数,'+'表示输入1个或多个参数,'?'表示输入0个或1个参数
required:required=True将可选参数设置为必须输入的参数
help:参数命令的介绍
原文地址:https://www.cnblogs.com/caicai2019/p/10845232.html