У меня есть приложение (CLI), которое включает функцию редактирования информации об учетной записи.Он делает это, задавая вопрос и вставляя в ответ старое значение, чтобы его можно было редактировать.В настоящее время я использую модуль readline
для этого.Я бы хотел еще один способ сделать то же самое, чтобы избежать использования этого модуля (я хочу, чтобы приложение работало со всеми функциями на Windows, а также на GNU / Linux в любой операционной системе, на которой работает python).
Первоначально я нашел следующий код (я немного его изменил, чтобы он соответствовал функции) на следующем веб-сайте, но, поскольку этому потоку уже 4 года, я решил спросить здесь.http://bytes.com/topic/python/answers/471407-default-editable-string-raw_input
import readline
def editInput(question, old_value):
readline.set_startup_hook(lambda: readline.insert_text(old_value))
try:
new_value = raw_input(question)
finally:
readline.set_startup_hook(None)
return new_value
editInput('What\'s the answer? ', '32')
ОБНОВЛЕНИЕ: Мне не обязательно нужна альтернатива для readline (например, PyReadline).Мне просто нужен тот же результат.Я обновил вопрос, чтобы упомянуть, что он не обязательно должен работать на Windows и GNU / Linux, но на любой ОС, поддерживаемой python.Поэтому в основном используйте только самые базовые функции (такие как sys.stdin и т. Д.)