【发布时间】:2017-07-13 02:30:22
【问题描述】:
我公司编写了一个应用程序(一个用于创建 CloudFormation 模板的小应用程序)并将二进制文件传递给所有团队使用。
为了稍微自动化这一点,我编写了一个 Python 脚本,它基本上将参数传递给 Bash/Shell 命令。这是一个包装器,所以我只是在制作它,以便我可以迭代一堆配置文件以在 AWS 中创建 CloudFormation 堆栈。
在 shell 中,我会这样做
cfapp cfn create -p Namespace=namespace -p Env=env -p Team=team -p Region=region --spec-file file://partner/foobar.yaml
我是用 Python 编写的,但出现语法错误:
os.system("cfapp cfn create -p Pool=%s" % pool "-p Namespace=%s" % namespace "-p Env=%s" % env "-p Team=%s" % team "-r %s" % region "--spec-file file://partner/"+str(config)+".yaml")
time.sleep(5)
我读到这是如何通过 python 实现的,但是,obv,我的实现是错误的。
【问题讨论】:
-
仅使用 1% 并将参数组合在字符串末尾的
tuple中...更好:使用带有参数列表的subprocess模块,不要尝试创建自己的命令行。 -
啊
tuple很有意义 - 谢谢@Jean-FrançoisFabre -
不确定我是否遗漏了什么,但你有理由不只使用所有 bash 吗?
标签: python bash shell command-line-arguments