You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过自定义分隔符从typer.Option获取无限多选项

用Python和Typer实现自定义分隔符分割Option多值需求

完全可以实现,核心是利用Typer的Option支持自定义解析函数的特性,将命令行传入的字符串按指定分隔符处理成列表。

实现代码

import typer

def parse_custom_values(value: str) -> list[str]:
    # 按逗号分割输入字符串,同时去除每个元素前后的引号与空格
    return [item.strip(' "') for item in value.split(',')]

app = typer.Typer()

@app.command()
def add(
    custom_values: list[str] = typer.Option(
        ...,
        "-C",
        parser=parse_custom_values,
        help="使用逗号分隔的自定义值,含空格的内容需用引号包裹整体参数"
    )
):
    print(custom_values)

if __name__ == "__main__":
    app()

测试验证

执行命令:

$ python main.py add -C "first one","second one","third"

输出结果:

['first one', 'second one', 'third']

关键说明

  • Typer的typer.Option通过parser参数接收自定义解析函数,该函数负责将命令行传入的字符串转换为目标类型(这里是字符串列表)
  • 解析函数中用split(',')按逗号分割输入,再通过strip(' "')清理每个元素前后的引号和多余空格,确保带空格的内容能正确提取
  • 命令行必须将整个-C参数用引号包裹,避免Shell把逗号或空格识别为参数分隔符

内容的提问来源于stack exchange,提问作者Alirezaarabi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 00:55:33