使用Python Typer实现多值List类型CLI选项遇错误求助
解决Typer CLI工具中List类型选项接收多值的问题
要让Typer的Option支持接收多个值,需要在typer.Option()中显式指定nargs参数——默认情况下Typer不会自动将多个参数绑定到List类型的选项上,这就是你遇到错误的核心原因。
修改后的代码
from typing import List import typer def main( devices: List[str] = typer.Option([], help="Devices to query", nargs="*"), ): print(f"CLI option is {devices}") if __name__ == "__main__": typer.run(main)
参数说明
nargs="*":允许选项接收0个或多个值,执行./my_cli --device 1 2时,devices会被赋值为["1", "2"];如果不传递--device参数,devices保持默认的空列表。- 如果你要求必须至少传递一个设备ID,可以将
nargs设置为"+",此时如果不传递--device或只写--device不跟值,CLI会直接报错提示缺少参数。
内容的提问来源于stack exchange,提问作者felix001
相关产品推荐
相关产品推荐

