3

input()用来向用户询问 Python (3) CLI 脚本中的命令。

我希望他们能够按下↑</kbd> to reuse older commands. For that matter I'd like them to be able to do other basic line editing too.

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

是否有一个库可以启用此功能(例如,提供历史/编辑意识版本input())还是我需要从头开始?

4

1 回答 1

2

我很感谢作为评论发布的答案。我尝试了@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

于 2020-01-08T09:27:40.160 回答