art*_*bot 5 python python-3.x rlwrap
我在用着input()在 Python (3) CLI 脚本中向用户询问命令。
我希望他们能够按\xe2\x86\x91重用旧命令。就此而言,我希望他们也能够进行其他基本的线条编辑。
\n\n我可以通过运行来获得这些功能rlwrap myscript.py,但我不想运行包装脚本。(是的,我可以设置一个别名,但如果可能的话,我想将其封装在脚本中)
是否有一个库可以启用此功能(例如提供历史/编辑感知版本input())或者我需要从头开始?
我很感谢作为评论发布的答案。我尝试了@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))
Run Code Online (Sandbox Code Playgroud)
prompt是主要的执行函数,但是除非您使用PromptSession. 如果不使用该history选项,历史记录将保留在内存中并在程序退出时丢失。
https://python-prompt-toolkit.readthedocs.io/en/master/index.html