我正在开发一个基于Cmd Python模块的小命令行应用程序。我无法在控制台提示符中看到如何显示最后一个命令,以便用户可以编辑它并重新提交。
问题不在于如何存储最后一个命令。它是关于如何在提示中显示它并允许用户编辑它
答案 0 :(得分:1)
From the docs for cmd,Cmd
有一个参数:
Cmd.use_rawinput一个标志,默认为true。如果为true,则cmdloop()使用 raw_input()显示提示并读取下一个命令;如果错误, 使用sys.stdout.write()和sys.stdin.readline()。 (这意味着 通过在支持它的系统上导入readline,解释器 将自动支持类似Emacs的行编辑和命令历史记录 击键。)
即,您可以使用向上箭头显示最后一个命令:
>>> import cmd
>>> C = cmd.Cmd()
>>> C.cmdloop()
(Cmd) command1
*** Unknown syntax: command1
(Cmd) command1
在上面的最后一行中,我按下向上箭头,它记得我的最后一个命令。
答案 1 :(得分:0)
只需使用readline库。你可以在python doc中找到例子: https://docs.python.org/3/library/readline.html