You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Python中实现控制台预打印文本的可编辑功能?

在Python中实现控制台预填充文本的编辑功能

要让用户直接编辑程序预先输出的文本,标准input()函数无法实现,需借助readline模块(Unix-like系统默认自带,Windows需额外安装依赖)。

实现代码

import readline

def input_with_prefill(prompt, prefill_text):
    # 设置启动钩子,在输入前插入预填充文本
    readline.set_startup_hook(lambda: readline.insert_text(prefill_text))
    try:
        return input(prompt)
    finally:
        # 清除钩子,避免影响后续输入操作
        readline.set_startup_hook()

# 调用示例
edited_text = input_with_prefill("请编辑下方文本: ", "这是程序预先设置的初始内容")
print(f"你最终提交的内容: {edited_text}")

关键说明

  • readline.insert_text(prefill_text)会把指定初始文本插入输入缓冲区,用户可直接在这段文本上修改、删除或追加内容。
  • try-finally块确保钩子被清除,防止后续input()调用自动带上之前的预填充内容。

Windows系统适配

Windows标准Python库无readline,需先安装pyreadline3:

pip install pyreadline3

安装后直接运行上述代码即可。

内容的提问来源于stack exchange,提问作者Plus Historiae

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 15:54:36