返回顶部
首页 > 资讯 > 后端开发 > Python >Python 命令行 prompt_toolkit 库详解
  • 307
分享到

Python 命令行 prompt_toolkit 库详解

2024-04-02 19:04:59 307人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

目录一. 使用 Bash 下常用快捷键二. 实现查找历史命令三. 根据历史输入自动提示四. 实现输入的自动补全python 的第三方库 prompt_toolkit 用于打造交互式命

python 的第三方库 prompt_toolkit 用于打造交互式命令行,在交互式场景的使用中,prompt_toolkit 具有以下特点:

  • 语法高亮
  • 支持多行编辑
  • 支持代码补全
  • 支持自动提示
  • 使用鼠标移动光标
  • 支持查询历史
  • 对 Unicode 支持良好
  • 跨平台
  • 支持 EMacs 与 Vi 风格的快捷键

prompt_toolkit 在使用前需要先进行安装:

pip install prompt_toolkit

一. 使用 Bash 下常用快捷键

想必很多开发者在创建交互式命令行工具时,使用最多的还是 inputraw_input 。比如下面的代码读取用户输入数据,并进行打印:


while True:
    # user_input = input('>')
    user_input = raw_input('>')
    print(user_input)
    if user_input.strip().lower() == 'exit':
        break

上述程序在 linux 环境下运行时,我们将无法使用任何的 Linux 快捷键,甚至在输入错误时,按退格删除内容都会出现问题:

下面,我们使用 prompt_toolkit 模块中的 prompt 函数改写上述程序:

from __future__ import print_function
from prompt_toolkit import prompt
while True:
    user_input = prompt(u'>>')
    print(user_input)

运行新的程序,你会发现,不仅可以实现退格删除,而且可以使用 Bash 下常用的快捷键:Ctrl + a 跳转到开头、Ctrl + e 跳转到末尾、Ctrl + k 删除光标到末尾的内容。

二. 实现查找历史命令

在 Bash 下,我们可以使用方向键中的 查看历史输入,或者使用 Ctrl + r 搜索历史命令:

Python 打造的交互式命令行中,使用 prompt_toolkit.history 我们可以很容易实现查找历史:

from __future__ import print_function
from __future__ import unicode_literals
from prompt_toolkit import prompt
from prompt_toolkit.history import FileHistory
 
while True:
    user_input = prompt('>>>', history=FileHistory('history.txt'))
    print(user_input)

运行结果:

上述历史输入将被保存至当前目录下的 history.txt 文件中,后续就可以使用查看或搜索历史命令了~

三. 根据历史输入自动提示

在上面是示例中我们实现了查看或搜索历史输入的功能,其实我们还可以更加充分地利用 history.txt 中记载的历史输入,在用户输入时进行提示。实现此功能只需要在调用 prompt 函数时指定 auto_suggest 的参数即可:

from __future__ import print_function
from __future__ import unicode_literals
from prompt_toolkit import prompt
from prompt_toolkit.history import FileHistory
from prompt_toolkit.auto_suggest import AutoSuggestFromHistory
 
while True:
    user_input = prompt('>>>', history=FileHistory('history.txt'), 
                        auto_suggest=AutoSuggestFromHistory())
    if user_input.strip().lower() == 'exit':
        break
    print(user_input)

prompt_toolkit 将以暗色字体显示匹配的历史输入:

四. 实现输入的自动补全

所谓自动补全,即用户输入了关键字的一部分,我们的交互式程序能够根据已有的输入进行提示,用户可以使用 Tab 键补全选择提示的内容。以上功能,prompt_toolkit 提供了名为 WorldCompleter 的类来帮助我们实现。下面我们来模仿 Mysql 客户端的提示功能:

from __future__ import print_function
from __future__ import unicode_literals
from prompt_toolkit import prompt
from prompt_toolkit.history import FileHistory
from prompt_toolkit.auto_suggest import AutoSuggestFromHistory
from prompt_toolkit.contrib.completers import WordCompleter
 
sqlCompleter = WordCompleter(['select', 'from', 'insert', 'update', 'delete'
                              'drop'], ignore_case=True)
 
while True:
    user_input = prompt('SQL>', history=FileHistory('history.txt'), 
                        auto_suggest=AutoSuggestFromHistory(), 
                        completer=SQLCompleter)
    if user_input.strip().lower() == 'exit':
        break
    print(user_input)

到此这篇关于Python 命令行 - prompt_toolkit 库的文章就介绍到这了,更多相关Python   prompt_toolkit 库内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Python 命令行 prompt_toolkit 库详解

本文链接: https://lsjlt.com/news/162119.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Python 命令行 prompt_toolkit 库详解
    目录一. 使用 Bash 下常用快捷键二. 实现查找历史命令三. 根据历史输入自动提示四. 实现输入的自动补全Python 的第三方库 prompt_toolkit 用于打造交互式命...
    99+
    2024-04-02
  • python命令行参数详解
    在Python中,可以通过命令行传递参数给脚本。这些参数可以在脚本内部使用,以便根据不同的输入执行不同的操作。Python命令行参数的详解:1、位置参数:在命令行中按照顺序传递给脚本的参数,它们可以在脚本内部通过位置来访问;2、命令行选项:...
    99+
    2023-12-18
    python 命令行
  • Python命令行解析器argparse详解
    目录第1章 argparse简介1.1 解析1.2 argparse定义三步骤1.3  代码示例第2章 参数详解2.1 创建一个命令行解析器对象:ArgumentParse...
    99+
    2024-04-02
  • Python anaconda安装库命令详解
    在这里输入命令: 操作命令: 1.更新Anaconda: conda update conda 更新所有包 conda update --all 3.添加清华源 执行以下命令 ...
    99+
    2024-04-02
  • 详解Python命令行解析工具Argparse
    最近在研究pathon的命令行解析工具,argparse,它是Python标准库中推荐使用的编写命令行程序的工具。 以前老是做UI程序,今天试了下命令行程序,感觉相当好,不用再花大把时间去研究界面问题,尤其...
    99+
    2022-06-04
    命令行 详解 工具
  • 详解Python中命令行参数argparse的常用命令
    目录1、参数个数控制2、参数互斥3、子命令1、参数个数控制 parser.add_argument('-i', '--integers', nargs='', const=100, ...
    99+
    2023-01-29
    Python argparse常用命令 Python argparse命令 Python argparse
  • Python的命令行参数实例详解
    目录0. 命令行参数1. sys.argv2. getopt2.1 getopt.getopt 方法2.2 Exception getopt.GetoptError3. argpar...
    99+
    2024-04-02
  • 详解Python如何优雅地解析命令行
    目录1. 手动解析2. getopt模块总结如何优雅地解析命令行选项 随着我们编程经验的增长,对命令行的熟悉程度日渐加深,想来很多人会渐渐地体会到使用命令行带来的高效率。 自然而然地...
    99+
    2024-04-02
  • 进入mysql命令行和退出mysql命令行详解
    目录进入mysql命令退出mysql命令mysql命令行常用语句进入mysql之前基础命令行语句关于mysql用户访问与权限进入mysql命令 mysql -u 用户名 -p回车 然后输密码 或 mysql -u用户名 ...
    99+
    2022-11-22
    进入mysql命令行 退出mysql命令行 mysql命令行
  • Android执行shell命令详解
    一、方法 代码如下: public static synchronized String run(String[] ...
    99+
    2022-06-06
    shell Android
  • Python执行外部命令subprocess的使用详解
    目录一、了解subprocess1、subprocess.run()方法2、Popen类二、补充os模块执行外部命令1、os.system()方法2、os.popen()用法一、了解subprocess s...
    99+
    2022-06-02
    Python执行外部命令 Python subprocess
  • Python执行dos和Linux命令的方法详解
    在实际开发中,有时为了方便,可能需要执行DOS命令或者linux命令。比如说执行某些shell脚本,上传下载一些文件,执行adb命令等跨语言,加压包,解压包等跨操作系统的场景。这样能大大加强多个平台和操作系统之间的关联性...
    99+
    2024-04-02
  • Python:执行命令行指令
    文章目录 简介os.systemos.popensubprocess.Popen()参考文献 简介 在python中,调用外部命令行(linux中的shell、或者windows中的cmd...
    99+
    2023-09-30
    python
  • 怎么使用Python命令行库fire
    本篇内容主要讲解“怎么使用Python命令行库fire”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么使用Python命令行库fire”吧!一、前言今天要介绍的 fire则是用一种面向广义对象...
    99+
    2023-06-16
  • Python命令行参数解析包argparse的使用详解
    目录一、argparse简介二、简单案例三、ArgumentParser参数四、add_argument指令参数解释五、vars()一、argparse简介 argparse 是 p...
    99+
    2024-04-02
  • Mysql命令行连接远程/本地数据库详解
    目录mysql 命令行 连接本地数据库Mysql 命令行 连接远程数据库总结Mysql 命令行 连接本地数据库 MySQL登录 mysql -uroot -p密码mysql -hip -uroot -p连接目标的密码my...
    99+
    2023-05-05
    mysql 命令行连接数据库 远程连接mysql命令 命令行进入数据库
  • Python详解argparse参数模块之命令行参数
    目录前言示例一:最简参数对象示例二:整数求和示例三:文件是否被篡改自定义类型choices选项限定required必选参数子命令前言 help(argparse)查看说明文档,&ld...
    99+
    2024-04-02
  • Python命令行参数化的四种方式详解
    目录1. sys.argv2. argparse3. getopt4. click最后大家好,在日常编写 Python 脚本的过程中,我们经常需要结合命令行参数传入一些变量参数,使项...
    99+
    2024-04-02
  • Python命令行库click的具体使用
    目录一、前言二、介绍三、快速开始四、小结一、前言 今天要介绍的 click 则是用一种你很熟知的方式来玩转命令行。命令行程序本质上是定义参数和处理参数,而处理参数的逻辑一定是与所定义...
    99+
    2024-04-02
  • Python 中如何使用click命令行库:
    Python 中如何使用click命令行库:,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。click是一个以尽可能少的代码、以组合的方式创建优美的命令行程序的 ...
    99+
    2023-06-16
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作