У меня есть этот код 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.