Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/305.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在python中编辑输入的文本_Python_Python 3.x - Fatal编程技术网

如何在python中编辑输入的文本

如何在python中编辑输入的文本,python,python-3.x,Python,Python 3.x,我正在用python构建一个命令行应用程序,我需要能够打印一些东西,然后用户编辑并返回给我 我知道Input()不适合我的情况,因为用户无法修改您给他的文本。 有办法吗?readline是允许用户编辑终端输入的系统名称(默认情况下在micro Emacs环境中)。可以使用提供要编辑的文本。一种受支持的方法是在调用input之前安排通过set\u pre\u input\u hook调用它。我认为一种方法是使用键盘输入监听器——这样你就可以准确地知道用户在做什么(所有字符都被按下,还有退格)并打印

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

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

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()