我有一个应用程序 (CLI),其中包含编辑帐户信息的功能。它通过提出问题并在答案中输入旧值来实现这一点,以便它可以编辑。目前我正在使用该readline
模块来执行此操作。我想要另一种方法来做同样的事情来避免这个模块(我想让应用程序在Windows 和 GNU/Linux上运行 python 运行的任何操作系统上的所有功能)。
我最初在以下网站上找到了以下代码(我对其进行了一些修改以适应函数),但由于该线程已有 4 年历史,我想我会在这里问。http://bytes.com/topic/python/answers/471407-default-editable-string-raw_input
import readline
def editInput(question, old_value):
readline.set_startup_hook(lambda: readline.insert_text(old_value))
try:
new_value = raw_input(question)
finally:
readline.set_startup_hook(None)
return new_value
editInput('What\'s the answer? ', '32')
更新:我不一定需要 readline 的替代品(例如 PyReadline)。我只需要相同的结果。我更新了这个问题,提到我不一定需要它在 Windows 和 GNU/Linux 上运行,而是在 python 支持的任何操作系统上运行。所以基本上,只使用非常基本的函数(如sys.stdin等)