如何在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
相关产品推荐
相关产品推荐

