bullet是一款不错的python命令行交互框架,十分优秀,炫酷高大上,在你的代码里加上它,让你爱不释手。bullet翻译为子弹,但是不知道为什么作者会用这个名字,大概是它足够的简单,高效,能快速解决我们的交互问题。
随意选择emoji表情
github的仓库地址是Mckinsey666/bullet,可以用pip install bullet引入到我们的项目中去,也可以用包管理工具pipenv,之前介绍过就不再介绍了。支持确认表单、输入、是否确认、密码输入框、提示、输入数据类型的验证、滑动提示、和进度条。当然也支持一些热键操作,比如退出、回车、删除、Ctrl + H、Ctrl + E等等。
如何在项目中应用该框架呢?作者提供了一些案例,可以很方便的让我们学习和入门。首先我们要了解一下有哪些模块,Bullet、Check、Input、YesNo、Password、VerticalPrompt、SlidePrompt还有一个就是SlidePrompt、作者也考虑了扩展的应用,方便开发者自定义自己的命令行提示,还有就是键盘监听事件的处理。
首先我们需要实例化我们需要的对象,且带入参数,如果我们需要一个Check的选择交互,首先我们需要导入这个模块,from bullet import Check,然后实例一个Check的对象,如:cli = Check(check = "√"),然后result = cli.launch(),这个result就是我们要的结果,是不是感觉十分的简单,没错,这就是bullet。
简单引入一两行代码,实现高大上jiaohu
剖析一下源代码,可以看到每个模块的实现都是用@keyhandler.init做了一下装饰,然后绑定一些事件,比如Check有moveDown,绑定的是ARROW_DOWN_KEY事件。还记得刚开始学习C语言,然后在命令行控制台写一个进度条,其实我们的实现方式就是在控制台渲染字符,进度条有更新的时候,我们就清屏,重新渲染。仔细阅读代码,他的实现也是这样的,万变不离其中,作者已经帮我们解决了很多复杂的渲染操作,我们之需要一两行简单的调用就可以实现高大上的命令行交互,快来一起学习使用吧。