gpt4 book ai didi

Python argparse 正则表达式

转载 作者:太空狗 更新时间:2023-10-29 21:18:08 26 4
gpt4 key购买 nike

是否可以使用正则表达式来解析参数?例如,我想接受一个长度为 32 的十六进制参数(即匹配 /[a-f0-9A-F]{32}/)

我试过了

p.add_argument('hex', type=str, nargs="[a-f0-9A-F]{32}")

没有成功

最佳答案

type关键字参数可以采用任何接受单个字符串参数并返回转换值的可调用对象。如果可调用对象引发 argparse.ArgumentTypeErrorTypeErrorValueError,则会捕获异常并显示格式正确的错误消息。

import argparse
import re
from uuid import uuid4

def my_regex_type(arg_value, pat=re.compile(r"^[a-f0-9A-F]{32}$")):
if not pat.match(arg_value):
raise argparse.ArgumentTypeError("invalid value")
return arg_value

parser = argparse.ArgumentParser()
parser.add_argument('hex', type=my_regex_type)

args = parser.parse_args([uuid4().hex])

关于Python argparse 正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41881002/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com