栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

允许值的argparse选择结构

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

允许值的argparse选择结构

您可以定义一个自定义类型,

argparse.ArgumentTypeError
如果字符串与所需的格式不匹配,则会引发。

def SpecialString(v):    fields = v.split(":")    # Raise a value error for any part of the string    # that doesn't match your specification. Make as many    # checks as you need. I've only included a couple here    # as examples.    if len(fields) != 5:        raise argparse.ArgumentTypeError("String must have 5 fields")    elif not (1 <= int(fields[2]) <= 10):        raise argparse.ArgumentTypeError("Field 3 must be between 1 and 10, inclusive")    else:        # If all the checks pass, just return the string as is        return vgroup_simulate.add_argument('-P',  type=SpecialString,  help='simulate FC port down',  nargs=1,  metavar='fc_port_name',  dest='simulate')

更新:这是一个完整的自定义类型,用于检查值。所有检查都是在正则表达式中完成的,尽管如果任何部分出错,它只会给出一条通用错误消息。

def SpecialString(v):    import re  # Unless you've already imported re previously    try:        return re.match("^1:m:([1-9]|10):p:(1|2|3|4)$", v).group(0)    except:        raise argparse.ArgumentTypeError("String '%s' does not match required format"%(v,))


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/661145.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号