执行Windows Shell命令并处理输出变量

时间:2019-03-27 22:31:18

标签: python python-3.x cmd terraform

在Windows上运行的Python 3.7中,需要使用什么特定语法:

{{outlet}}

输出变量可以采用以下形式:

1. Navigate to a directory containing a terraform program  
2. Execute "terraform apply -auto-approve" in that target directory  
3. Extract the resulting output variables into a form usable in python  

想在这里使用Windows cmd样式命令,而不是Powershell。

我第一次失败的新手尝试是:

security_group_id_nodes = sg-xxxxxxxxxx  
vpc_id_myvpc = vpc-xxxxxxxxxxxxx   

1 个答案:

答案 0 :(得分:1)

不确定您的输出,但是子进程肯定可以解决问题。

尝试类似的东西:

command = 'terraform apply -auto-approve'
TARGET_DIR = 'E:\Target\Directory'
subprocess_handle = subprocess.Popen(shlex.split(command), cwd=TARGET_DIR, shell=False, stdout=subprocess.PIPE)
subprocess_handle.wait()

result = subprocess_handle.communicate()[0]
print(result)

为我工作了一次,只是玩弄参数。

UPD:在这里,我认为“ terraform”是可执行文件。