举例来说,如果我有这样的代码:是否有可能让python打开一个终端并写入它?
subprocess.call(['gnome-terminal'])
是否有可能有刚打开蟒蛇输出字符串到特定终端?谢谢!
举例来说,如果我有这样的代码:是否有可能让python打开一个终端并写入它?
subprocess.call(['gnome-terminal'])
是否有可能有刚打开蟒蛇输出字符串到特定终端?谢谢!
可能,但在下级终端中运行自定义进程更容易。例如,从example server in the documentation给出sserv.py
命令:
gnome-terminal -e "python ./sserv.py"
会很乐意在端口9999与你聊天。给定一个更复杂的sserv.py
它可以做任何你想要的(任何东西都是末日的,就是这样)。
+1:整齐。完成。简单。 – 2010-07-27 02:34:54
我认为PExpect可能会为你做到这一点:
Pexpect的基本上是一个模式 匹配系统。它运行程序和手表输出。当输出匹配 给定模式时,如果人类正在键入响应,则Pexpect可以响应为 。 Pexpect可用于自动化测试, 测试和屏幕抓取。 Pexpect的 可用于自动化交互式 控制台应用程序,如SSH,FTP, passwd文件,远程登录等,也可用于通过
lynx
,w3m
,或者一些其他的基于文本的 Web浏览器来控制Web应用程序 。 Pexpect是纯Python的 。不像其他类似 Python的模块Pexpect不需要 要求TCL或期望,也不要求 要求编译C扩展。 它应该可以在任何支持标准Python pty 模块的平台上工作。
您的答案适用于*阅读*,但不适用于*写作*。 – Arafangion 2010-07-27 02:30:07
@Arafangion实际上PExpect _DOES_支持写作,并且做得很好。 它甚至可以写入PAM密码输入,这通常不适用于典型的stdin。 PExpect模仿tty设备IIRC – 2010-07-27 02:47:32
那么在http://pexpect.svn.sourceforge.net/viewvc/pexpect/trunk/pexpect/examples/monitor.py?revision=498&view=markup中的child.sendline()等呢? – 2010-07-27 02:51:31
这是可能的...但是你想做什么? – Arafangion 2010-07-27 02:27:14