作家
登录

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

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

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

在二部曲系列文┞仿的第二部分关于巨大年夜的敕令行 UI 终端应用文┞仿中,我们摸索了“提示对象包”,“敕令行界面创建对象包“,“Pygments”和“模糊搜刮”。

这是我的二部曲终端应用法度榜样与巨大年夜的敕令行界面的第二部分。 在第一篇文┞仿中,我介绍了几个能使应用敕令行法度榜样充斥乐趣的功能。 在第二部分中,我将介绍如安在几个 Python 库的赞助下实现这些功能。 在本文结尾,读者应当很好地懂得若何应用 Prompt Toolkit,Click(敕令行界面创建对象包),Pygments 和 Fuzzy Finder 来实现一个易于应用的 REPL(交互式说冥器)。

我筹划用少于 20 行的 Python 代码中实现这一点。 让我们开端。

Python 提示对象包

我爱好将这个库看作是像瑞士军刀那样集大年夜成者的敕令行应用法度榜样,它可以替代 readline,curses 等等。 让我们来安装这个库并开端应用:

  1. pip install prompt_toolkit 

2017年5月20日,Amjith Ramanujam在俄勒冈州波特兰市举办的美国 2017 PyCon 大年夜会上做了名为《超棒的敕令行对象》的演讲,你可以经由过程这个演讲懂得更多内容。

我们将大年夜简单的 REPL 开端。 平日 REPL 将接收用户输入,履行操作并打印结不雅。 对于我们的例子,我们要构建一个“echo”REPL。 它只是打印出用户输入的内容:

交互式说冥器

  1. from prompt_toolkit import prompt 
  2.  
  3. while 1: 
  4.  
  5. user_input = prompt('>'
  6.  
  7. print(user_input) 

这就是实现 REPL 所须要的。它可以攫取用户输入并打印输入的内容。此代码段中应用的提示函数来自 prompt_toolkit 库;它是 readline 库的替代者。

如今我们来给用户输入添加语法高亮显示。我们正在构建 SQL 交互式说冥器,并且拥有彩色的 SQL 语句会很好。

汗青记录

为了加强我们的REPL,我们可以添加汗青敕令:

  1. from prompt_toolkit import prompt 
  2.  
  3. from prompt_toolkit.history import FileHistory 
  4.  
  5. while 1: 
  6.  
  7.     user_input = prompt('>'
  8.  
  9.                         history=FileHistory('history.txt'), 
  10.  
  11.                        ) 
  12.  
  13.     print(user_input) 

我们方才向REPL添加了持久的汗青记录。如今我们可以应用向上/向下箭头浏览汗青记录,并应用 Ctrl + R 搜刮汗青。这相符敕令行的根本习惯。

主动提示

我在第一部分中介绍的技能之一是主动提示汗青敕令。(我们看到这个功能最先在 Fish shell中推出。)让我们把这个功能添加到我们的REPL中:

  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. while 1: 
  8.  
  9.     user_input = prompt('>'
  10.  
  11.                         history=FileHistory('history.txt'), 
     1/5    1 2 3 4 5 下一页 尾页

      推荐阅读

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

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


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

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

关键词: 探索发现

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

网友点评
自媒体专栏

评论

热度

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