我正在尝试创建一个自动脚本,它应该在同一个终端窗口(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')
结果是终端应用程序打开时只显示根名称。
类似命令在终端中运行,并在同一终端窗口中显示所需的输出。
三江源。任何帮助将不胜感激。
答案 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。