Как сделать многострочное поле ввода в терминале?

Мне надо сделать многострочное поле ввода input(), но также чтобы я мог перемещаться между строками используя стрелочки на клавиатуре, используя Python.


Ответы (2 шт):

Автор решения: zrx

Уже был похожий вопрос, так что авторство ответа не моё. Ссылка, чтобы поблагодарить автора.

Многострочный ввод в 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)
→ Ссылка
Автор решения: insolor

Встроенных средств для многострочного ввода с редактированием и перемещением стрелками внутри вводимого текста в 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)

→ Ссылка