-2

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

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

4

2 回答 2

1

从 cmd 的文档中Cmd有一个参数:

Cmd.use_rawinput 一个标志,默认为真。如果为真,cmdloop() 使用 raw_input() 显示提示并读取下一条命令;如果为 false,则使用 sys.stdout.write() 和 sys.stdin.readline()。(这意味着通过导入 readline,在支持它的系统上,解释器将自动支持类似 Emacs 的行编辑和命令历史击键。)

即,您可以使用向上箭头调出最后一条命令:

>>> import cmd
>>> C = cmd.Cmd()
>>> C.cmdloop()
(Cmd) command1
*** Unknown syntax: command1
(Cmd) command1

在上面的最后一行中,我按下了向上箭头,它记住了我的最后一个命令。

于 2015-07-01T06:37:54.243 回答
0

只需使用 readline 库。您可以在 python 文档中找到示例: https ://docs.python.org/3/library/readline.html

于 2015-07-01T06:34:52.147 回答