使用python控制终端应用程序

Eri*_*ley 4 python terminal

我有一个通过控制台运行的服务器程序.(具体来说,Bukkit MineCraft服务器)我希望能够控制这个程序并读取输出.没有GUI,所以它不应该太难,对吧?

无论如何,我从来没有在python中控制一个控制台而且完全卡住了.有什么建议?

PS我正在使用Debian Linux,因此应该简化一些事情.

我得到了一个很好的答案,但我还需要一件事.我想有一些方法将程序的FULL输出打印到python控制台(逐行排序很好),我需要一些方法将控制台中的命令转发到程序.

Gre*_*ill 5

像这样的任务的规范答案是使用Pexpect.

Pexpect是一个Python模块,用于生成子应用程序并自动控制它们.Pexpect可用于自动化交互式应用程序,如ssh,ftp,passwd,telnet等.它可用于自动化设置脚本,以便在不同服务器上复制软件包安装.它可用于自动化软件测试.Pexpect本着Don Libes的期望,但Pexpect是纯Python.其他类似Expect的模块需要TCL和Expect或者需要编译C扩展.Pexpect不使用C,Expect或TCL扩展.它应该适用于任何支持标准Python pty模块的平台.Pexpect界面侧重于易用性,因此简单的任务很容易.