如何在python中编辑输入的文本
我正在用python构建一个命令行应用程序,我需要能够打印一些东西,然后用户编辑并返回给我 我知道Input()不适合我的情况,因为用户无法修改您给他的文本。如何在python中编辑输入的文本,python,python-3.x,Python,Python 3.x,我正在用python构建一个命令行应用程序,我需要能够打印一些东西,然后用户编辑并返回给我 我知道Input()不适合我的情况,因为用户无法修改您给他的文本。 有办法吗?readline是允许用户编辑终端输入的系统名称(默认情况下在micro Emacs环境中)。可以使用提供要编辑的文本。一种受支持的方法是在调用input之前安排通过set\u pre\u input\u hook调用它。我认为一种方法是使用键盘输入监听器——这样你就可以准确地知道用户在做什么(所有字符都被按下,还有退格)并打印
有办法吗?readline是允许用户编辑终端输入的系统名称(默认情况下在micro Emacs环境中)。可以使用提供要编辑的文本。一种受支持的方法是在调用
input之前安排通过set\u pre\u input\u hook
调用它。我认为一种方法是使用键盘输入监听器——这样你就可以准确地知道用户在做什么(所有字符都被按下,还有退格)并打印编辑后的文本
您可以看看这个答案,它给出了如何在linux/windows中实现这一点的示例:
如果您正在寻找一个用户界面(不是正确的命令行),您可以使用Tkinter do显示一个文本框,用户可以在其中输入数据
示例(基于):
所以,正如阿纳托利所说,我要学习诅咒,因为我需要诅咒能做的其他事情。谢谢大家的回应。我还将使用read line.insert_text您可能需要使用Tkinter之类的完整UI,或者使用Curses之类的库。普通控制台中的文本操作相当有限。这是一个系统问题,因为我知道控制台不支持这一点(除非我错了),所以您需要运行另一个应用程序,用户可以将数据输入到输入控制中,但以vim为例,用户可以修改vim中的文本vim是一个用c编写的应用程序,它用c构建了它的窗口,所以它有点不相关,因为您是用python编写的。(您可以在python中使用c,但我认为它比其他可用的解决方案要复杂一些)
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()