可以让Python打开终端并写入内容吗?

1 投票
2 回答
3841 浏览
提问于 2025-04-16 01:53

比如,我有这样的代码:

subprocess.call(['gnome-terminal'])

有没有办法让Python把字符串输出到刚刚打开的那个终端?谢谢!

2 个回答

2

我觉得 PExpect 可能能帮到你:

Pexpect 基本上是一个模式匹配系统。它可以运行程序并监控输出。当输出符合某个特定的模式时,Pexpect 可以像人类一样输入回应。Pexpect 可以用来做自动化、测试和抓取屏幕信息。它可以用来自动化一些需要交互的控制台应用,比如 ssh、ftp、passwd、telnet 等等。它还可以通过 lynxw3m 或其他一些基于文本的网页浏览器来控制网页应用。Pexpect 是纯 Python 编写的。和其他类似 Expect 的 Python 模块不同,Pexpect 不需要 TCL 或 Expect,也不需要编译 C 扩展。它应该能在任何支持标准 Python pty 模块的平台上运行。

3

有可能,但在下级终端运行一个自定义的进程会更简单。例如,使用文档中的示例服务器 sserv.py,你可以用以下命令:

 gnome-terminal -e "python ./sserv.py"

它会很高兴地在9999端口和你聊天。如果你有一个更复杂的 sserv.py,它可以做你想要的任何事情(只要是终端能处理的事情)。

撰写回答