Python, благодаря привязкам readline, обеспечивает отличное автозаполнение командной строки (как описано в здесь ).
Но завершение работает только в начале строки. Если вы хотите сопоставить середину или конец строки, readline не работает.
Я хотел бы автоматически завершать строки в программе Python для командной строки, сопоставляя то, что я печатаю, с любой из строк в списке доступных строк.
- Хорошим примером типа автозаполнения, который я хотел бы иметь, является тип, который происходит в GMail при вводе в поле «Кому». Если вы введете фамилию одного из ваших контактов, она появится так же, как если бы вы ввели ее имя.
- Может потребоваться некоторое использование стрелок вверх и вниз или какой-либо другой метод для выбора из подходящих строк (и не требуется в случае readline), и это хорошо в моем случае.
- Мой конкретный вариант использования - это программа командной строки, которая отправляет электронные письма.
- Конкретные примеры кода были бы очень полезны.
Было бы неплохо использовать эмуляторы терминала, такие как curses. Он должен работать только на Linux, а не на Mac или Windows.
Вот пример:
Скажем, у меня есть следующие три строки в списке
['Paul Eden <paul@domain.com>',
'Eden Jones <ejones@domain.com>',
'Somebody Else <somebody@domain.com>']
Мне нужен код, который автоматически заполняет первые два элемента в списке после того, как я наберу 'Eden', а затем позволит мне выбрать один из них (через командную строку с помощью клавиатуры).