首页 > 系统相关 >python windows环境自己的程序实现命令行补全/使用pyreadline实现(目前已知唯一方法,对python版本有要求)

python windows环境自己的程序实现命令行补全/使用pyreadline实现(目前已知唯一方法,对python版本有要求)

时间:2023-11-16 19:35:14浏览次数:40  
标签:commands 补全 python text 程序实现 pyreadline input

1.环境

  • 前提注意事项
  • python3版本最好是3.10以下(理论上),最新版可能会有问题,本文使用python3.7.2版本
    image
  • 本文环境是用pipenv加pyenv虚拟环境实现的,想了解的去我的主页搜素相关博文

安装pyreadline(全平台通用win/linux)

pip install pyreadline

版本问题报错请参考:https://blog.csdn.net/qq_43267113/article/details/132913899

上代码

import readline
import sys
# 自定义自动补全函数
def complete(text, state):
    commands = ["start", "stop", "restart", "status"]  # 定义一组可能的命令
    options = [i for i in commands if i.startswith(text)]  # 根据用户输入的text进行匹配
    if text=="start":
        commands = ["group", "inter", "gap", "log"]  # 定义一组可能的命令
        options = [i for i in commands if i.startswith(text)]  # 根据用户输入的text进行匹配
    if state < len(options):
        return options[state]
    else:
        return None

# 启用自动补全功能
readline.parse_and_bind("tab: complete")  ##tab补全,替换tab原有功能

# 设置自动补全函数
readline.set_completer(complete)
while True:
    # 从命令行获取用户输入
    user_input = input("Enter a command: ")
    if user_input=="q":
        sys.exit(0)
    elif user_input=="exit":
        sys.exit(0)
    else:
        continue

效果windows下:

image

标签:commands,补全,python,text,程序实现,pyreadline,input
From: https://www.cnblogs.com/codedingzhen/p/17837092.html

相关文章

  • python—多线程之线程之间共享数据(Queue)
    Queue理解从一个线程向另一个线程发送数据最安全的方式可能就是使用queue库中的队列了。创建一个被多个线程共享的Queue对象,这些线程通过使用put()和get()操作来向队列中添加或者删除元素。Queue对象已经包含了必要的锁,所以你可以通过它在多个线程间多安全地共享数据。生产者和......
  • python语言合法命名规则:my_first_python_program
    示例示例Python语言合法命名规则:命名只能使用字母、数字和下划线,不能使用其他符号;Python语言合法命名规则:1.命名只能使用字母、数字和下划线,不能使用其他符号;2.不能以数字开头;3.不能使用Python关键字;4.命名应该有意义,尽量不要使用缩写;5.命名应该具有可读性,尽量使用驼峰命名法,......
  • 一键整合,万用万灵,Python3.10项目嵌入式一键整合包的制作(Embed)
    我们知道Python是一门解释型语言,项目运行时需要依赖Python解释器,并且有时候需要安装项目中对应的三方依赖库。对于专业的Python开发者来说,可以直接通过pip命令进行安装即可。但是如果是分发给其他的Windows用户,特别是不熟悉Python的人来说,这样过于繁琐。因此最好的办法是连同Pytho......
  • Python中的爬虫应用及常用Python库
    Python的爬虫应用非常广泛,以下是一些典型的示例:数据采集:使用爬虫可以从网页上抓取数据,并将其保存到本地或数据库中。这对于构建大规模数据集、进行市场调研、舆情监测等任务非常有用。搜索引擎索引:搜索引擎需要通过网络爬虫来收集和更新互联网上的信息,以便为用户提供准确且......
  • 使用python开发了一个自动摇摆机械臂 Micropython+ESP332+舵机+USB发热贴
    前言:在测试不同区域的红外、毫米波和激光雷达等传感器时,需要人工招手和移动进行测试。尽管这种测试是必要的,但却难以保证测试的一致性,因为人的动作很难做到完全一致。解决方案:为了提高测试的一致性,我们测试考虑开发一种可摇摆且能发热的测试工具。这样的工具可以模拟不同......
  • Python/C API 异常处理
    Python/CAPI异常处理(部分)Python/CAPI中的异常处理与Unix系统中的errno变量类似,每个线程都有一个全局的异常指示器,该指示器只记录最后一次发生的异常。大多数函数都不会在成功执行时清除该指示器,但会在异常发生时及时设置该指示器。大部分函数函数也都会返回一个标志来指......
  • VSCode------设置自动补全函数的括号
    一:VSCode设置自动补全函数的括号操作步骤1.1 寻找setting.json配置文件    Ctrl+Shift+P (Mac:command+Shift+P) 1.2编辑并保存配置内容 "typescript.suggest.completeFunctionCalls": true,  "javascript.suggest.completeFunctionCalls": ......
  • C++调用Python3实战,和PyImport_ImportModule返回NULL问题解决
    LinuxC++调用Python3入门准备以下面的目录结构演示如何在LinuxC/C++调用python3。|--hello.py|--main.cpp|--CMakeLists.txt hello.py:python的脚本,里面有2个函数main.cpp:c++函数CMakeLists.txt:Cmake文件,生成makefilepython脚本示例python脚本hello.py内容如下,......
  • 如何通过python实现导出题库到pdf?
    要通过Python实现将题库导出为PDF,你可以使用一些第三方库来处理PDF文件和生成内容。下面是一个基本的步骤和示例代码:安装所需的库:首先,你需要安装reportlab库,它是一个用于创建PDF文档的强大工具。你可以使用以下命令来安装该库:pipinstallreportlab创建PDF文档:使用reportlab库创建......
  • 基于pybind11实现C++程序中调用Python脚本增加C++程序扩展性
     文章目录前言一、pybind11与Python环境配置二、C++环境配置三、C++调用Python交互代码四、C++调用PythonDemo完整源码 前言Windows平台,在实际C++项目开发中,结合pybind11库,让python成为C++的脚本语言,可以大大提高C++程序的可扩展性,大大提高开发效率,特别......