长期潜伏者,第一次海报。
我知道整个互联网上有很多关于使用子进程的示例,但是我还没有找到一个解释我需要采取哪些步骤来生成一个新的终端窗口并发送命令。有很多帖子提供了通过直接子进程调用启动工具和脚本的变通方法,但我还没有找到任何真正回答如何正确发送命令到终端的原始问题的帖子。
在我的情况下,我需要打开一个新的终端窗口,然后将路径发送到应用程序的特定版本,最后是我希望在该应用程序中打开的文件的路径。
我知道如何使用子进程直接调用所需的应用程序(不打开可见终端),如何使用子进程打开新终端,以及如何调用应用程序路径或文件路径(无法同时获得使用 --args for open() 或我发现的任何其他解决方法一起执行)。
一旦我打开它,我就无法向终端发送命令。下面是打开一个新的终端实例并发送ls的简单版本,不起作用。
from subprocess import Popen, PIPE, STDOUT
p = Popen(['open', '-a', 'Terminal', '-n'], stdout=PIPE, stdin=PIPE, stderr=STDOUT)
output = p.communicate(input='ls')
print(output)
这很可能是一个微不足道的问题,我只是遗漏了一些东西,但我一直无法找到说明我需要什么的信息或示例,我开始对此感到沮丧,所以我想我会寻求帮助。
非常感谢任何帮助!TIA