是否有 python (3) 本机等效于使用 rlwrap 调用脚本?

Is there a python (3) native equivalent to invoking the script with rlwrap?

我正在使用 input() 向用户询问 Python (3) CLI 脚本中的命令。

我希望他们能够按 来重用旧命令。就此而言,我希望他们也能够进行其他基本的行编辑。

我可以通过 运行 宁 rlwrap myscript.py 获得这些功能,但我宁愿不必 运行 包装脚本。 (是的,我可以设置一个别名,但如果可能的话,我想将它封装在脚本中)

是否有库可以启用此功能(例如,提供 input() 的 history/editing 感知版本)或者我是否需要从头开始?

非常感谢作为评论发布的答案。我尝试了@furas 的建议,它似乎工作正常。这里有一个片段,可以帮助其他通过搜索来到这里的人。

from prompt_toolkit import prompt       
from prompt_toolkit import PromptSession
from prompt_toolkit.history import FileHistory
from os.path import expanduser

myPromptSession = PromptSession(history = FileHistory(expanduser('~/.myhistory')))

while True:
  userInput = myPromptSession.prompt('Enter command')
  print("{}, interesting.".format(userInput))

prompt 是主要的执行函数,但除非使用 PromptSession,否则您不会获得任何历史记录。如果您不使用 history 选项,那么历史将保留在内存中并在程序退出时丢失。

https://python-prompt-toolkit.readthedocs.io/en/master/index.html