python - subprocess - 用文件打开终端
问题描述:
我想制作一个自动脚本,它应该在同一个终端窗口(Mac OS X Yosemite)中运行一组命令。但是我无法到达可以继续添加命令的阶段。python - subprocess - 用文件打开终端
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')
结果是终端应用程序只用根名称打开。
类似的命令在终端中在相同的终端窗口中以期望的输出运行。
谢谢。任何帮助,将不胜感激。
答
可以通过管道使用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是不必要的。
'|应该是什么意思?你想从'cd','open','python'建立一个Unix管道吗? – 2015-03-02 10:17:46