python - subprocess - 打开带有文件的终端

时间:2015-03-02 10:15:44

标签: python macos

我正在尝试创建一个自动脚本,它应该在同一个终端窗口(Mac OS X Yosemite)中运行一组命令。但是我无法进入可以继续添加命令的阶段。

Automator.py

path = '/Users/aakashshah/documents/python/test.py'

def subprocess_cmd(command):
    process = subprocess.Popen(command,stdout=subprocess.PIPE, shell=True)
    proc_stdout = process.communicate()[0].strip()
    print(proc_stdout)

subprocess_cmd('cd /Users/aakashshah/documents/python/ | open -a Terminal | python test.py')

结果是终端应用程序打开时只显示根名称。

类似命令在终端中运行,并在同一终端窗口中显示所需的输出。

三江源。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

您可以使用Popen进行管道并使用cwd:

from subprocess import Popen,PIPE


def subprocess_cmd(dr,cmd1,cmd2):
    p1 = Popen(cmd1.split(),stdout=PIPE,cwd=dr)
    p2 = Popen(cmd2.split(),stdin=p1.stdout,stdout=PIPE,cwd=dr)
    p1.stdout.close()
    return p2.communicate()[0]

subprocess_cmd('/Users/aakashshah/documents/python/','open -a Terminal','python test.py')

如果您只想运行python文件,则不需要第一个cmd1。