可以让Python打开终端并写入内容吗?
比如,我有这样的代码:
subprocess.call(['gnome-terminal'])
有没有办法让Python把字符串输出到刚刚打开的那个终端?谢谢!
2 个回答
2
我觉得 PExpect 可能能帮到你:
Pexpect 基本上是一个模式匹配系统。它可以运行程序并监控输出。当输出符合某个特定的模式时,Pexpect 可以像人类一样输入回应。Pexpect 可以用来做自动化、测试和抓取屏幕信息。它可以用来自动化一些需要交互的控制台应用,比如 ssh、ftp、passwd、telnet 等等。它还可以通过
lynx
、w3m
或其他一些基于文本的网页浏览器来控制网页应用。Pexpect 是纯 Python 编写的。和其他类似 Expect 的 Python 模块不同,Pexpect 不需要 TCL 或 Expect,也不需要编译 C 扩展。它应该能在任何支持标准 Python pty 模块的平台上运行。
3
有可能,但在下级终端运行一个自定义的进程会更简单。例如,使用文档中的示例服务器 sserv.py
,你可以用以下命令:
gnome-terminal -e "python ./sserv.py"
它会很高兴地在9999端口和你聊天。如果你有一个更复杂的 sserv.py
,它可以做你想要的任何事情(只要是终端能处理的事情)。