作家
登录

四个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.contrib.completers import WordCompleter 
  8.  
  9. import click 
  10.  
  11. SQLCompleter = WordCompleter(['select''from''insert''update''delete''drop'], 
  12.  
  13.                              ignore_case=True
  14.  
  15. while 1: 
  16.  
  17.     user_input = prompt(u'SQL>'
  18.  
  19.                         history=FileHistory('history.txt'), 
  20.  
  21.                         auto_suggest=AutoSuggestFromHistory(), 
  22.  
  23.                         completer=SQLCompleter, 
  24.  
  25.                         ) 
  26.  
  27.     click.echo_via_pager(user_input) 

编辑器

在我之前的文┞仿中提到一个细节,就是当敕令变得太复杂时就会回到编辑器,同样的 click 供给了一个简单的 API 可以来启动编辑器,并将编辑器中输入的文本返回到应用中:

假设我们正在为 SQL 实现 REPL。我们可以应用 SQL 关键字存储我们的主动完成字典。让我们看看若何做到这一点:

  1. import click 
  2.  
  3. message = click.edit() 

模糊搜刮

模糊搜刮是一种让用户经由过程起码的输仁攀来缩小提示。同样有一个模糊搜刮库,让我们安装这个库:

  1. pip install fuzzyfinder 

模糊搜刮的API很简单,你传递进部分字符串和一个可能选择的列表,模糊搜刮将返回一个新的列表,它和应用了按相干性排序的含混算法的字符串进行匹配,例如:

  1. >>> from fuzzyfinder import fuzzyfinder 
  2.  
  3. >>> suggestions = fuzzyfinder('abc', ['abcd''defabca''aagbec''xyz''qux']) 
  4.  
  5. >>> list(suggestions) 
  6.  
  7. ['abcd''defabca''aagbec'

如今我们有了模糊搜刮,我们将它参加到我们的 SQL 交互式说冥器中。如许就定义了一个完成器,而不是 prompt-toolkit 附带的 WordCompleter。例如:


  推荐阅读

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

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


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

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

关键词: 探索发现

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

网友点评
自媒体专栏

评论

热度

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