Как избежать значений клавиш со стрелками при вводе Python? - PullRequest
1 голос
/ 04 апреля 2020

Я получаю значения ключа стрелки в моем Python Вводе с использованием input().

Это происходит только во время выполнения Python Script. Это не происходит, если входные данные получены от интерпретатора.

Значения клавиш со стрелками, на которые я ссылаюсь: Почему терминал показывает «^ [[A» «^ [[B» » ^ [[C "" ^ [[D "при нажатии клавиш со стрелками в Ubuntu?

Содержимое файла сценария:

s = input("Enter Something: ")
print(s)

Терминальный вывод:

$ python input_example.py 
Enter Something: Now Pressing Left Arrow Key^[[D^[[D^[[D^[[D
Now Pressing Left Arrow Key

Я не могу перемещаться (или, скажем, менять положение курсора) влево или вправо во время записи input , в результате чего отображаются значения клавиш со стрелками на входе. Есть ли способ их избежать? В Терминале , как правило, можно изменить положение курсора, эта проблема не возникает в отличие от Python input().

Ps Я не хочу менять какие-либо настройки в bash, потому что я пытаюсь написать скрипт, который работает во всех консолях. Я нуб, поэтому я многого не понимаю. Я надеюсь, что это сообщество поможет мне.

1 Ответ

0 голосов
/ 04 апреля 2020

Я нашел ответ:

https://www.codehaven.co.uk/python/using-arrow-keys-with-inputs-python/

Python * curses модуль используется для работы с пользовательскими входами. Затем каждому ключу со стрелкой присваивается индивидуальное поведение. Я не уверен, проверен ли код или нет (точки с запятой используются в конце кода), который Python не позволяет.

Даже если это правильно, но это очень долго и экстрим для скриптов, созданных для автоматизации небольших задач. Есть ли более короткая альтернатива?

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