У меня есть приложение (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 и т. д.)