作家
登录

四个Python库,实现超实用的命令行功能

作者: 来源: 2017-07-10 15:03:32 阅读 我要评论

  1. from prompt_toolkit import prompt 
  2.  
  3. from prompt_toolkit.history import FileHistory 
  4.  
  5. from prompt_toolkit.auto_suggest import AutoSuggestFromHistory 
  6.  
  7. from prompt_toolkit.completion import Completer, Completion 
  8.  
  9. import click 
  10.  
  11. from fuzzyfinder import fuzzyfinder 
  12.  
  13. SQLKeywords = ['select''from''insert''update''delete''drop'
  14.  
  15. class SQLCompleter(Completer): 
  16.  
  17.     def get_completions(self, document, complete_event): 
  18.  
  19.         word_before_cursor = document.get_word_before_cursor(WORD=True
  20.  
  21.         matches = fuzzyfinder(word_before_cursor, SQLKeywords) 
  22.  
  23.         for m in matches: 
  24.  
  25.             yield Completion(m, start_position=-len(word_before_cursor)) 
  26.  
  27. while 1: 
  28.  
  29.     user_input = prompt(u'SQL>'
  30.  
  31.                         history=FileHistory('history.txt'), 
  32.  
  33.                         auto_suggest=AutoSuggestFromHistory(), 
  34.  
  35.                         completer=SQLCompleter(), 
  36.  
  37.                         ) 
  38.  
  39.     click.echo_via_pager(user_input) 

Pygments

提示对象包实用于 Pygments 库。我们选择 Pygments 供给的 SqlLexer 并将其大年夜提示对象包传递给 API 。如今所有的用户输入都邑被算作 SQL 语句并且添上了色彩。

Pygments 是一个语法高亮库,内置支撑300多种说话。添加语法高亮使得应用法度榜样变成彩色的,可以赞助用户在履行 SQL 之前发明一些例如打字缺点或者无法匹配的引号和括号。

起首安装 Pygments

  1. pip install pygments 

让我们用 pygments 给我们的 SQL 交互式说冥器添加色彩:

  1. from prompt_toolkit import prompt 
  2.  
  3. from prompt_toolkit.history import FileHistory 
  4.  
  5. from prompt_toolkit.auto_suggest import AutoSuggestFromHistory 

      推荐阅读

      深度学习自动编码器还能用于数据生成?这篇文章告诉你答案

    什么是主动编码器主动编码器(AutoEncoder)最开端作为一种数据的紧缩办法,其特点有: 跟数据相干程度很高,这意味着主动编码器只能紧缩与练习数据类似的数据,这个其实比较显然,因>>>详细阅读


    本文标题:四个Python库,实现超实用的命令行功能

    地址:http://www.17bianji.com/lsqh/36115.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)