from prompt_toolkit.completion import Completer, Completion import click from fuzzyfinder import fuzzyfinder from pygments.lexers.sql import SqlLexer SQLKeywords = ['select', 'from', 'insert', 'update', 'delete', 'drop'] class SQLCompleter(Completer): def get_completions(self, document, complete_event): word_before_cursor = document.get_word_before_cursor(WORD=True) matches = fuzzyfinder(word_before_cursor, SQLKeywords) for m in matches: yield Completion(m, start_position=-len(word_before_cursor)) while 1: user_input = prompt(u'SQL>', history=FileHistory('history.txt'), auto_suggest=AutoSuggestFromHistory(), completer=SQLCompleter(), lexer=SqlLexer, ) click.echo_via_pager(user_input) 结论
不是很轻易吗?如今你还有什么来由写不出一个优良的敕令行应用法度榜样呢,这里有一些可能有赞助的资本:
- Click (敕令行界面创建对象包)
- 模糊搜刮
- 提示对象包
- 请参阅 Prompt Toolkit 教程和 prompt-toolkit 中的例子
- Pygments
如今我们经由过程 Tab 加强来实现主动补全,当用户开端键入输入时,它弹出可能的建议。
【编辑推荐】
- 何故突围短视频红海?秒拍海量播放下的高机能视频调剂实践
- 拯救你的旧代码库,不得不看的11条军规!
- 高效应用Python可视化对象Matplotlib
- 高效Java法度榜样员不克不及错过的10+个最佳库
- 用Python做股市数据分析(一)
【义务编辑:枯木 TEL:(010)68476606】
推荐阅读
深度学习自动编码器还能用于数据生成?这篇文章告诉你答案
什么是主动编码器主动编码器(AutoEncoder)最开端作为一种数据的紧缩办法,其特点有: 跟数据相干程度很高,这意味着主动编码器只能紧缩与练习数据类似的数据,这个其实比较显然,因>>>详细阅读
本文标题:四个Python库,实现超实用的命令行功能
地址:http://www.17bianji.com/lsqh/36115.html
1/2 1