Kou*_*sha 8 python regex argparse
是否可以使用正则表达式来解析参数?例如,我想接受一个参数,如果它只是一个32长度十六进制(即匹配/[a-f0-9A-F]{32}/)
我试过了
p.add_argument('hex', type=str, nargs="[a-f0-9A-F]{32}")
Run Code Online (Sandbox Code Playgroud)
没有成功
wim*_*wim 20
这就是typekwarg用于:它可以采用任何可调用的单个字符串参数并返回转换后的值.
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
return arg_value
parser = argparse.ArgumentParser()
parser.add_argument('hex', type=my_regex_type)
args = parser.parse_args([uuid4().hex])
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6174 次 |
| 最近记录: |