是否可以在 Python 3 的命令行界面中预填充 input() ?

问题描述 投票:0回答:2

我在 Ubuntu 11.10 (Linux) 上使用 Python 3.2。我的一段新代码如下所示:

text = input("TEXT=")

是否可以在提示后获取一些预定义的字符串,以便我可以根据需要进行调整?应该是这样的:

python3 file
TEXT=thepredefinedtextishere

现在我按 Backspace 3 次

TEXT=thepredefinedtextish

现在我按 Enter,变量

text
应该是
thepredefinedtextish

python input python-3.x command-line-interface
2个回答
38
投票

如果你的Python解释器与GNU readline链接,

input()
将使用它。在这种情况下,以下方法应该有效:

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

0
投票

我认为您正在寻找更流畅但更简单的方法:

inputstring = input("Input your text here ('test' if ignored): ")
if inputstring == '' : inputstring = 'test'
© www.soinside.com 2019 - 2024. All rights reserved.