将命令转换为子进程

2024-06-07 12:38:16 发布

您现在位置:Python中文网/ 问答频道 /正文

我目前有以下情况:

tf = Terraform()
tf.init()
tf.plan(capture_output=False)
approve = {"auto-approve": True}
print(tf.apply(capture_output=False, auto_approve=True, skip_plan=True,**approve))

这很有效,但我需要将其放入子流程中。我尝试了以下方法:

tf = Terraform()
tf.init()
tf.plan(capture_output=False)
approve = {"auto-approve": True}
subprocess.check_output(['tf.apply','capture_output','0', 'auto_approve','1', 'skip_plan','1','**approve'])

但是,我收到错误:“tf.apply”未被识别为内部或外部命令、可操作程序或批处理文件。”

我可以将上述内容转换为子流程吗?如果是,怎么做


Tags: falsetrueautooutputinittf情况流程
1条回答
网友
1楼 · 发布于 2024-06-07 12:38:16

subprocess执行外部命令。相比之下,您正在尝试执行类似于(但不完全是)Python代码的代码。这根本行不通

可以做的是创建一个包含Terraform代码的Python脚本,并通过^{执行。但是,这仅在Python脚本完成时有效。你不能像你的情况那样执行一个片段

关于可以做什么的一个简单示例,请使用原始脚本,将其另存为tf.py,并在Python中按如下方式执行:

subprocess.check_output(['python', 'tf.py'])

相关问题 更多 >

    热门问题