Возможно ли предварительно заполнить вход() в интерфейсе командной строки Python 3?
Я использую Python 3.2 на Ubuntu 11.10 (Linux). Часть моего нового кода выглядит так:
text = input("TEXT=")
Возможно ли получить некоторую предопределенную строку после подсказки, чтобы я мог ее отрегулировать, если это необходимо? Это должно быть так:
python3 file
TEXT=thepredefinedtextishere
Теперь я нажимаю Backspace 3 раза
TEXT=thepredefinedtextish
Теперь я нажимаю Enter, а переменная text
должна быть thepredefinedtextish
Ответы
Ответ 1
Если ваш интерпретатор Python связан с линией чтения GNU, input()
будет использовать его. В этом случае должно работать следующее:
def input_with_prefill(prompt, text):
def hook():
readline.insert_text(text)
readline.redisplay()
readline.set_pre_input_hook(hook)
result = input(prompt)
readline.set_pre_input_hook()
return result