如何使 python 命令行程序自动完成任意内容而不是解释器

2023-12-07

我知道如何在 python 解释器(在 unix 上)中设置 python 对象的自动完成功能。

  • 谷歌显示了许多有关如何执行此操作的解释的点击。
  • 不幸的是,有太多的参考资料,很难找到我需要做的事情,这略有不同。

我需要知道如何在用 python 编写的命令行程序中启用选项卡/自动完成任意项目。

我的具体用例是一个需要发送电子邮件的命令行 python 程序。我希望能够在用户键入部分电子邮件地址(并且可以选择按 TAB 键)时自动完成电子邮件地址(我在磁盘上有地址)。

我不需要它在 Windows 或 Mac 上工作,只需要在 Linux 上工作。


使用Python的readline绑定。例如,

import readline

def completer(text, state):
    options = [i for i in commands if i.startswith(text)]
    if state < len(options):
        return options[state]
    else:
        return None

readline.parse_and_bind("tab: complete")
readline.set_completer(completer)

官方模块文档没有更详细的内容,请参阅阅读行文档了解更多信息。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使 python 命令行程序自动完成任意内容而不是解释器 的相关文章

随机推荐

  • JSON 与 JSONB Postgresql

    我正在 PostgreSql 文档上阅读有关 JSON 和 JSONB 数据类型之间的差异的信息https www postgresql org docs 13 datatype json html 有这条线 json 数据类型存储输入文本
  • 使用指针写入和读取(fwrite - fread)结构

    我正在开发一个邮箱项目 我有以下两种结构 结构mmbox mail struct mmbox mail char sender recipient char obj date char flags size t size and mail
  • 如何从HashMap中获取可变结构体?

    我有一个所有状态的哈希图 它是HashMap
  • 对于不返回值的函数使用map()

    我有一个快速的问题 如果我有一个函数 a 1 2 3 4 5 6 7 def f x return x 2 result list map f a print result gt gt gt 1 4 9 16 25 36 49 但如果我 r
  • Microsoft的Graph权限资源类型没有邀请

    一直尝试使用 Microsoft Graph 的统一 API 和 OneDrive API 收集有关特定 DriveItem 权限的信息 文档指出以下属性可在权限资源类型 grantedTo application displayName
  • 使用可变空间对齐的 C# 字符串格式化

    我想做类似的事情 String Format Completed 0 9 of 0 xlsx totalCount ToString 除了对 9 进行硬编码之外 我希望对齐方式为 xlsx totalCount 的任何值 有什么想法吗 试试
  • 删除二维数组中的重复项,同时保持顺序

    我发现了很多关于删除数组中重复项的线程 但没有一个适合我的特定用例 我有一个二维列表 我需要从中删除重复项 但我必须保持原始序列 mylist Installation 64 C2 14 NA 14 C2 14 NA 14 na 7 我需要
  • 如何将 Web Audio API 连接到 Tone.js?

    我正在做一个在线音频播放器 所以我想整合变调器在我的应用程序中 可以在Tone js但不在网络音频API 所以我的想法是连接Tonejs 变调器 to 网络音频 API 音频上下文 有什么可行的办法吗 这是我的代码供参考 var audio
  • 如何在静态基方法中创建继承的实例?

    从一个例子来看 我可能会这样做 var obj Activator CreateInstance GetType 但不确定如何在静态基方法中获取继承类的 typeof 这是最好的前进方式吗 public static Method
  • 如何从 SQL Server 中的表查询 Xml 值和属性?

    我有一个表 其中包含Xml column SELECT FROM Sqm 的一个样本xml一行的数据将是
  • 了解通过动态分配引用传递参数

    我正在尝试了解如何在 C 语言中通过引用传递参数 所以我编写了这段代码来测试参数传递的行为 include
  • 如何从互动经纪商API获取历史股价数据?

    我想使用IBAPI来获取历史股票数据 我的代码不起作用并且不返回任何内容 有人可以帮我编辑代码吗 谢谢 from ibapi import client from ibapi import wrapper import datetime f
  • Laravel flash 或会话消息不会过期 [ 未维护更新 ]

    经过一些研究后更新经过一些研究 我得出的结论是 在我明确保存它们之前 我的会话不会得到维护 下面的代码运行良好 但为什么 Ref here Session put lets test 2 Session save 老问题我是 laravel
  • 为什么 Rust 的 read_to_end 不将文件读入缓冲区?

    代码 根据我的实际问题改编 非常简单 但我无法弄清楚我缺少什么 它将正确写入文件 但它的输出是Buffer 由于某种原因没有从文件中读取任何内容 它是什么 use std io Read Write fn main let mut test
  • 区分“colorbar”中的剪裁值

    我有一个pcolormesh绘图 其中颜色图通过设置进行裁剪vmin和和vmax严格在绘制的值范围内 有没有办法有关联colorbar从底部和顶部分离一块以表示相关颜色超出了颜色图的范围 是的 您需要使用extend both颜色栏的关键字
  • 为什么每次使用 malloc 时都会收到警告?

    如果我使用malloc在我的代码中 int x malloc sizeof int 我收到此警告gcc new c 7 warning implicit declaration of function malloc new c 7 warn
  • jqGrid - 复选框编辑无法编辑所选行

    在我的 jqGrid 中 我有一个也可用于编辑的复选框 即用户可以单击该复选框 并且该复选框的值将在数据库中更新 效果很好 但是 当我单击该复选框并尝试再次单击它时 什么都没发生 该行不会被保存 理论上应该保存复选框未选中的值 但这并没有发
  • Angular 9 库构建失败

    我正在尝试迁移这个库https github com flauc angular2 notifications从 Angular 2 到 Angular 9 最初的错误是关于ModuleWithProviders这已经成为一个通用类型 所以
  • CSV 转换为哈希

    我有一个 csv 第一列是一个标签 后跟逗号分隔值 LabelA 45 56 78 90 LabelB 56 65 43 32 LabelC 56 87 98 45 我希望第一列 LabelA 等 成为散列中的键 数值位于数组中 我可以将文
  • 如何使 python 命令行程序自动完成任意内容而不是解释器

    我知道如何在 python 解释器 在 unix 上 中设置 python 对象的自动完成功能 谷歌显示了许多有关如何执行此操作的解释的点击 不幸的是 有太多的参考资料 很难找到我需要做的事情 这略有不同 我需要知道如何在用 python