很久以前我就开始潜水了,第一次发帖。
我知道在互联网上有很多关于使用subprocess的例子,但是我还没有找到一个能够解释我需要采取哪些步骤来打开一个新的终端窗口并发送命令的例子。有很多帖子提供了通过直接调用subprocess来启动工具和脚本的解决办法,但是我没有找到一个能够真正回答如何正确地将命令发送到终端的原始问题的帖子。
在我的情况下,我需要打开一个新的终端窗口,然后发送一个特定版本应用程序的路径,最后再发送我想要在该应用程序中打开的文件路径。
我知道如何使用subprocess直接调用所需的应用程序(而不打开可见的终端),如何使用subprocess打开一个新的终端,并如何调用应用程序路径或文件路径(尝试使用--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