Python Cmd:如何编辑最后一个命令

时间:2015-07-01 06:25:27

标签: python python-cmd

我正在开发一个基于Cmd Python模块的小命令行应用程序。我无法在控制台提示符中看到如何显示最后一个命令,以便用户可以编辑它并重新提交。

问题不在于如何存储最后一个命令。它是关于如何在提示中显示它并允许用户编辑它

2 个答案:

答案 0 :(得分:1)

From the docs for cmdCmd有一个参数:

  

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