【问题标题】:Starting raw_input() with pre determined text使用预先确定的文本启动 raw_input()
【发布时间】:2013-10-05 17:30:10
【问题描述】:

我希望能够从用户那里获得输入(通过raw_input() 或模块),并且能够自动输入已经输入的文本,以便他们可以添加、删除或修改。我知道在 javascript 中,当您使用提示时,您可以这样做

var = prompt("Enter your name: ","put name here")

它会显示为:

Enter your name:
put name here

'put name here' 在文本框中,可以修改。我希望在 shell 环境(我使用 unix)而不是窗口中实现这一点。

有什么办法吗?

哦,告诉我是否需要澄清我的期望。


我认为你们不明白我要做什么。

我基本上想在输入中包含提示,但如果用户愿意,可以退格/编辑提示。

该脚本可能用于基于 shell 的简单单行文本编辑器和制表符完成类型的东西。

【问题讨论】:

标签: python raw-input


【解决方案1】:

嗯,有点骇人听闻,但试试这个。

窗户:

import win32com.client as win

shell = win.Dispatch("WScript.Shell").SendKeys("Put name here")
raw_input("Enter your name: ")

在 Linux/Unix 环境下,您可以使用 pyreadlinereadlinecurses 库。您可以找到一种可能的解决方案here

def rlinput(prompt, prefill=''):
    readline.set_startup_hook(lambda: readline.insert_text(prefill))
    try:
        return raw_input(prompt)
    finally:
        readline.set_startup_hook()

【讨论】:

    【解决方案2】:

    在 UNIX 和 UNIX 类似系统(例如 Mac OS X 和 Linux)上,您可以使用 readline 模块。在 Windows 上,您可以使用 pyreadline

    如果您按照 minitech 在他的评论中建议的方式进行操作,请编写一个小函数以使其更容易:

    def input_default(prompt, default):
        return raw_input("%s [%s] " % (prompt, default)) or default
    
    name = input_default("What is your name?", "Not Sure")
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-01
      • 2019-04-16
      • 2015-08-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多