【问题标题】:Python: Get user input by letting user edit default valuePython:通过让用户编辑默认值来获取用户输入
【发布时间】:2011-05-17 16:15:45
【问题描述】:

我有一个从 Web 服务器提取文本的脚本。我想让用户(我)有机会编辑该文本,以便他们可以选择要保留的部分。理想情况下,应该是这样的:

editedText= raw_input(defaultText)

所以,defaultText 被打印出来,用户编辑它并按下回车键,他们编辑的文本被分配给editedText

有没有办法做到这一点?
谢谢!

【问题讨论】:

标签: python macos command-line user-input defaults


【解决方案1】:

是的,有办法。使用readline

import readline

defaultText = 'I am the default value'
readline.set_startup_hook(lambda: readline.insert_text(defaultText))
res = raw_input('Edit this:')
print res

请注意,这不是一个非常可移植的解决方案,我只在 Linux 上测试过:)

【讨论】:

  • 看起来不错;我一回家就测试一下。不过,我很好奇,是否有办法通过标准库(或至少使用更多跨平台包)来实现这一点。谢谢!
  • @Marco 真的吗?第一行链接的文档:Platforms: Unix.
  • @Luke 嘿,这是真的。我认为这不是因为我上面引用的那行......那么,它是否与 Unix 兼容(就像那个文档说的那样)或也与 Win 兼容?请注意,它位于OS-dependent section 中。谢谢!
  • 有一个包 pyreadline 在 Windows 上提供 readline 等效行为。它与 IPython 一起安装。没有它,AFAIK readline 将无法在 Windows 上运行。
  • @Marco @Luke Python 2.7 在 Windows 中没有 readline 模块。你用的是什么版本?确定你还没有安装readline.py 或类似的东西?
猜你喜欢
  • 2018-09-29
  • 1970-01-01
  • 2014-04-19
  • 2021-07-01
  • 1970-01-01
  • 2015-01-23
  • 2012-04-14
  • 2013-06-07
相关资源
最近更新 更多