gpt4 book ai didi

python - 在 Python 中将文本插入 raw_input(以避免读取)的跨平台方法

转载 作者:太空宇宙 更新时间:2023-11-04 06:30:39 24 4
gpt4 key购买 nike

我有一个应用程序 (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等)

最佳答案

行编辑功能远非微不足道。例如,只是一个功能,例如“不回显地读取下一个击键”(甚至在您开始解释该击键的含义以重新定位光标并改变屏幕外观以及文本行的内存内容之前)正在编辑)不能简单地以跨平台的方式完成:您需要 Windows 上的 msvcrt 功能和 Unix-y 系统上的 curses 功能——以及您对它工作的要求在 Python 支持的任何操作系统上都显得巨大,无法满足。

在考虑答案之前,您需要非常严格地界定它必须运行的操作系统/平台集,以及它必须绝对提供的行编辑功能的子集。如果您只是不能划定这些集合的界限,那么答案很简单:您所要求的过于笼统,根本不可能。

关于python - 在 Python 中将文本插入 raw_input(以避免读取)的跨平台方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3327524/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com