如何在Python Click API中接收数量未知的多值选项?
使用Click API接收数量未知的多值选项
要实现接收数量不确定的多值选项,直接用Click的nargs=-1参数就能解决——它允许选项接收任意数量的参数,直到遇到下一个--开头的选项为止,完美匹配你的场景。
完整代码示例
import click @click.group() def cli(): pass @cli.command() @click.option('--fruits', nargs=-1, help='可传入任意数量的水果名称') @click.option('--vegetable', help='传入单个蔬菜名称') def shop(fruits, vegetable): # 把收集到的水果元组转成空格分隔的字符串,按需调整输出格式 fruits_str = ' '.join(fruits) if fruits else '' print(f"fruits: '{fruits_str}', vegetable: '{vegetable}'") if __name__ == '__main__': cli()
测试调用与结果
第一种调用:
python demo.py shop --fruits apple --vegetable potato
输出:
fruits: 'apple', vegetable: 'potato'
第二种调用:
python demo.py shop --fruits apple banana --vegetable potato
输出:
fruits: 'apple banana', vegetable: 'potato'
补充说明
nargs=-1会把所有后续的非选项参数收集成一个元组赋值给fruits,如果需要直接用数组形式,直接输出fruits即可,比如修改print语句为:
此时第二种调用会输出:print(f"fruits: {fruits}, vegetable: '{vegetable}'")fruits: ('apple', 'banana'), vegetable: 'potato'- 这个参数会自动识别下一个
--开头的选项作为终止符,不用担心参数混叠的问题。
内容的提问来源于stack exchange,提问作者Priyansh Maheshwari
相关产品推荐
相关产品推荐

