Shell 如何使用python在一个管道中执行大量命令?

Shell 如何使用python在一个管道中执行大量命令?,shell,python-2.7,command-line,command,subprocess,Shell,Python 2.7,Command Line,Command,Subprocess,我对在python中执行命令有疑问。 问题是: 在我们公司,我们购买了可以使用GUI或命令行界面的商业软件。我被分配了一项任务,尽可能使其自动化。首先,我考虑使用CLI而不是GUI。但是,在执行多个命令时,我遇到了一个问题。 现在,我想使用参数执行该软件的CLI版本,并继续在其菜单中执行命令(我不是说再次使用参数执行脚本。我想,一旦执行初始命令,它将打开菜单,我想在后台执行软件菜单中的软命令)。然后将输出重定向到变量。 我知道,我必须对管道使用子流程,但我没有管理它 import subproc

我对在python中执行命令有疑问。 问题是: 在我们公司,我们购买了可以使用GUI或命令行界面的商业软件。我被分配了一项任务,尽可能使其自动化。首先,我考虑使用CLI而不是GUI。但是,在执行多个命令时,我遇到了一个问题。 现在,我想使用参数执行该软件的CLI版本,并继续在其菜单中执行命令(我不是说再次使用参数执行脚本。我想,一旦执行初始命令,它将打开菜单,我想在后台执行软件菜单中的软命令)。然后将输出重定向到变量。 我知道,我必须对管道使用子流程,但我没有管理它

import subprocess
proc=subprocess.Popen('./Goldbackup -s -I -U', shell=True, stdout=subprocess.PIPE)
output=proc.communicate()[0]
proc_2 = subprocess.Popen('yes\r\n/dir/blabla/\r\nyes', shell=True, stdout=subprocess.PIPE) 
# This one i want to execute inside first subprocess

如果要通过子流程的stdin将命令传递给子流程,请设置
stdin=PIPE

#!/usr/bin/env python
from subprocess import Popen, PIPE

proc = Popen('./Goldbackup -s -I -U'.split(), stdin=PIPE, stdout=PIPE,
             universal_newlines=True)
output = proc.communicate('yes\n/dir/blabla/\nyes')[0]

谢谢你,兄弟!它帮助了我!