Как я могу редактировать введенный текст в Python - PullRequest
2 голосов
/ 02 ноября 2019

Я создаю приложение командной строки с python, и мне нужно иметь возможность напечатать что-то, затем пользователь отредактирует это и вернет мне

Я знаю, что Input () не подходитв моем случае, потому что пользователь не может изменить текст, который вы ему даете. Есть ли способ сделать это?

Ответы [ 3 ]

1 голос
/ 02 ноября 2019

Я думаю, что одним из способов сделать это является использование прослушивателя ввода с клавиатуры - таким образом, вы можете точно определить, что делает пользователь (все символы, которые нажимаются, а также клавишу Backspace) и распечататьотредактированный текст.

Вы можете взглянуть на этот ответ, в котором приведены примеры того, как этого добиться в linux / windows: Ключевые прослушиватели в python? .

Если вы ищете пользовательский интерфейс (не правильную командную строку), вы можете использовать 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()
0 голосов
/ 02 ноября 2019

Итак, как сказал Анатолий, я буду изучать проклятие, потому что мне понадобятся другие вещи, которые проклятие может сделать. Спасибо за всех, кто ответил. Я также буду использовать read line.insert_text

0 голосов
/ 02 ноября 2019

readline - это имя системы, которая позволяет пользователю редактировать ввод терминала (по умолчанию в среде micro-Emacs). Вы можете использовать readline.insert_text для предоставления текста для редактирования. Один из поддерживаемых способов сделать это - организовать вызов через set_pre_input_hook перед вызовом input.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...