为了账号安全,请及时绑定邮箱和手机立即绑定

将命令转换为子进程

将命令转换为子进程

炎炎设计 2023-03-08 10:19:13
我目前有以下内容: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' 未被识别为内部或外部命令、可运行程序或批处理文件。”我可以将上述转换为子流程吗?如果是这样,怎么办?
查看完整描述

1 回答

?
慕运维8079593

TA贡献1876条经验 获得超5个赞

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

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

对于您可以执行的操作的最小示例,请获取原始脚本,将其另存为tf.py并在 Python 中像这样执行它:

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


查看完整回答
反对 回复 2023-03-08
  • 1 回答
  • 0 关注
  • 81 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信