我正在尝试在python脚本中设置一个预先填充的输入。本质上,我想做的是创建一个输入,如果调用该输入,则会在脚本的前面设置一个变量(用户名和IP地址)来预先填充该输入。我发现以下帖子(Is it possible to prefill a input() in Python 3's Command Line Interface?)有建议,但由于某种原因,当我运行它时,没有任何反应。
import readline
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
我传递给提示变量的任何东西都可以,但是文本变量似乎什么也没发生,输入保持空白。如果我在终端中运行脚本,则可以看到文本变量,但是该变量位于提示之前,并且不可编辑,这违背了我要执行的操作的目的。如果登录失败,则允许用户编辑他们输入的用户名或IP。
我正在Manjaro Linux上使用Python 3.8。任何帮助将非常感激。
您可能想使用'yield'函数:
def my_readline(preload_lines):#要返回的行数组def my_readline_yielder():如果preload_lines:行= preload_lines [0]