首页 > 解决方案 > 如何在python中编辑输入的文本

问题描述

我正在用 python 构建一个命令行应用程序,我需要能够打印一些东西,然后用户对其进行编辑并将其返回给我

我知道 Input() 不适合我的情况,因为用户无法修改您给他的文本。有没有办法做到这一点?

标签: pythonpython-3.x

解决方案


我认为做到这一点的一种方法是使用键盘输入侦听器- 这样您就可以准确地确定用户在做什么(按下所有字符以及退格键)并打印编辑后的文本。

你可以看看这个答案,它给出了如何在 linux/windows 中实现这一点的示例:Python 中的 Key Listeners?.

如果您正在寻找用户界面(不是正确的命令行),您可以使用 Tkinter 显示一个文本框,用户可以在其中输入数据。

一个例子(基于https://effbot.org/tkinterbook/entry.htm):

from Tkinter import *

master = Tk()

e = Entry(master, width=500)
e.pack()

e.focus_set()

def callback():
    print e.get()

b = Button(master, text="get", width=50, command=callback)
b.pack()

mainloop()

推荐阅读