Python子进程执行带有python变量参数的shell脚本

问题描述 投票:-2回答:1

我有一个python脚本,需要在内部调用bash脚本,所以我想知道使用python变量作为bash脚本参数执行bash脚本的子过程语法。我尝试如下。

subprocess.check_call("./script.sh %s %s %s" % ('$a', '$b', "input.csv", "r"), shell=True)

python bash subprocess
1个回答
0
投票

check_call可以采用str个参数的list,其中的每个元素都直接传递给系统函数以使用其参数来执行命令,而完全绕开了外壳。

subprocess.check_call(["./script.sh", a, b, "input.csv", "r"])

如果ab实际上不是str值,则需要显式转换它们,例如,

subprocess.check_call(["./script.sh", str(a), str(b), "input.csv", "r"])
© www.soinside.com 2019 - 2024. All rights reserved.