Обработка клавиш со стрелками при вводе текста в Python - PullRequest
0 голосов
/ 28 июня 2019

У меня есть этот код Python, который принимает пользовательский ввод, затем сохраняет его в cmd, где options - это словарь, содержащий значения конфигурации пользователя, а prompt - строка приглашения для ввода:

from .options import options
import sys
from select import select

if options['timeout'] == 0:
    cmd = input(prompt)
else:
    print(prompt, end='')
    i, _, _ = select([sys.stdin], [], [], float(options['timeout']))
        if i:
            cmd = sys.stdin.readline().strip()
        else:
            print('\nTimeout exceeded ({} seconds)'.format(options['timeout']))
            sys.exit(0)
        del i

Этот код работает нормально, но я хочу, чтобы он мог обрабатывать клавиши со стрелками влево и вправо. Когда я нажимаю левую клавишу со стрелкой во время ввода, я хочу, чтобы он переместил курсор влево, но вместо этого появляется ^[[D.

Я также хочу иметь возможность обрабатывать клавиши вверх и вниз для доступа к предыдущим входам, как в Bash.

...