zoukankan      html  css  js  c++  java
  • 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:参数命令的介绍
  • 相关阅读:
    PHP 文件包含之文件路径截断(转)
    如何使用Linux通用后门(转zafe)
    利用sqlmap和burpsuite绕过csrf token进行SQL注入 (转)
    正则表达式30分钟入门教程<转载>
    php empty()和isset()的区别<转载>
    $_SERVER详细资料整理(转)
    [C语言(VC)] 打造自己的键盘记录器 (zaroty)
    metasploit(MSF)终端命令大全
    linux提权总结(外文)
    kettle菜鸟学习笔记1----相关准备知识
  • 原文地址:https://www.cnblogs.com/caicai2019/p/10845232.html
Copyright © 2011-2022 走看看