Как сделать многострочное поле ввода в терминале?
Мне надо сделать многострочное поле ввода input(), но также чтобы я мог перемещаться между строками используя стрелочки на клавиатуре, используя Python.
Ответы (2 шт):
Уже был похожий вопрос, так что авторство ответа не моё. Ссылка, чтобы поблагодарить автора.
Многострочный ввод в Python3
print("Enter/Paste your content. Ctrl-D or Ctrl-Z ( windows ) to save it.")
contents = []
while True:
try:
line = input()
except EOFError:
break
contents.append(line)
Многострочный ввод в Python2
print "Enter/Paste your content. Ctrl-D or Ctrl-Z ( windows ) to save it."
contents = []
while True:
try:
line = raw_input("")
except EOFError:
break
contents.append(line)
Встроенных средств для многострочного ввода с редактированием и перемещением стрелками внутри вводимого текста в Python нет.
Можно использовать сторонние модули, например модуль prompt_toolkit (установка pip instal prompt_toolkit).
Пример многострочного ввода (завершение ввода Alt+Enter или Meta+Enter,
или Esc, потом Enter):
from prompt_toolkit import prompt
answer = prompt('Give me some input: ', multiline=True)
print('You said:', answer)
Документация по prompt (кроме многострочного ввода можно реализовать автодополнение, подсказки вариантов, подсветку синтаксиса, валидацию ввода, хранение истории ввода и т.д.): Asking for input (prompts)