首页 > 解决方案 > 限制 argparse add_argument 中的输入字符串长度

问题描述

我想添加一个字符串类型的参数,但将字符串的长度限制为 1。

   group.add_argument(
        "--test_param",
        dest="test_param",
        type=str,
        required=True,
        default=None,
    )

有什么办法可以在这里做到,而不必len(test_param)稍后检查引发错误?

标签: python-3.xargparse

解决方案


您可以尝试lambdatype

前任:

import argparse

group = argparse.ArgumentParser(description='Data.')
group.add_argument( 
        "--test_param",
        dest="test_param",
        type=lambda x: x if x.isalpha() and len(x) <=1 else False,   #Sample Function
        required=True,
        default=None,
    )

args = group.parse_args()
value = getattr(args, 'test_param')
if value:
    print(value)
else:
    print("error!!!")

输出:

python sample.py --test_param fddd  #->>error!!
python sample.py --test_param f     #->>f

推荐阅读