Я хочу, чтобы кто-то ввел слова в консоли и автоматическое заполнение из списка, когда они нажимают клавишу "вкладки". Однако raw_input
не возвратит строку, пока кто-то не совершает нападки [Входят].
Как я читаю символы в переменную, пока пользователь не совершает нападки [Входят]?
*Примечание: Я не хочу использовать import readline
для автозавершения из-за проблем ОС.
По этому вопросу есть официальный раздел часто задаваемых вопросов для Unix: http://www.python.org/doc/ faq / library / # how-do-i-get-a-single-keypress-at-a-a-a-time
Edit (скопировано из комментария Donal Fellows ниже): «Проблема в том, что терминал находится в «Приготовленный» режим по умолчанию (позволяющий простое редактирование строки), и чтобы клавиши были набраны по мере их набора, он должен быть переведен в «сырой» режим ». (Спасибо!)
При использовании * nix выберите
на sys.stdin
, чтобы дождаться символа, затем . read ()
it in. В Windows используйте msvcrt.kbhit ()
и msvcrt.getch ()
.