python - 如何在 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”,但是我想要完整的句子。
解决方案
根据文档,您需要做的就是添加nargs=<the number you want>
例如:
@click.option('-a', '--add',nargs=2, type=click.STRING, help='Task you want to add')
或者你总是可以像这样运行你的脚本:
todo --add="Hello World !!"
推荐阅读
- reactjs - 就地编辑列表项(React)
- javascript - Jest 模拟单击可能会多次呈现的组件的一个实例
- python-3.x - argparse 的非英语参数
- webpack - 将 eslint-webpack-plugin 添加到项目中以提供 Typescript linting
- liferay - Unresolved requirement: Import-Package: com.liferay.portal.kernel.portlet.bridges.mvc; version="[2.0.0,3.0.0)"
- kubernetes - 如果 ActiveMQ Artemis 集群在 Kubernetes 环境中运行,备份节点是否需要 ON_DEMAND 负载平衡才能运行?
- header - 后缀头检查
- vue.js - 将 ref 传递给指令绑定会导致“超出最大递归更新”
- firebase - Firebase 事件作为 Google Ads 中的转化不起作用
- reactjs - 是否可以将酶测试与 Next js (SSR) 一起使用?