首页 > 解决方案 > 如何在 Python 中使用 click.option() 接收一串句子?

问题描述

我正在尝试创建一个简单的命令行界面来维护待办事项。
我知道我可以用来click.argument()从用户那里获取一个字符串句子,但我想使用click.option().

@click.command()
@click.option('-a', '--add', type=click.STRING, help='Task you want to add')
@click.option('-rm', '--remove', type=click.INT, help='ID of task you want to remove')
def cli(add, remove):
    if add:
        add_task(add)
    elif remove:
        remove_task(remove)
    else:
        list()

按照上面的脚本:
todo -a Hello World !!
只得到字符串“Hello”,但是我想要完整的句子。

标签: pythonpython-3.xcommand-line-interfacepython-click

解决方案


根据文档,您需要做的就是添加nargs=<the number you want>例如:

@click.option('-a', '--add',nargs=2, type=click.STRING, help='Task you want to add')

或者你总是可以像这样运行你的脚本:

todo --add="Hello World !!"


推荐阅读