如何将python参数传递给perl脚本?

时间:2020-10-16 17:21:22

标签: python

我正在编写一个python脚本,试图调用perl脚本。 perl脚本的输入是python参数。

 row[i[k]]=re.sub(r"^_", "", row[i[k]])
 row[i[k]]=re.sub(r"{", "[", row[i[k]])
 row[i[k]]=re.sub(r"}", "]", row[i[k]])
 row[i[0]]=re.sub(r"^_", "", row[i[0]])
 row[i[0]]=re.sub(r"{", "[", row[i[0]])
 row[i[0]]=re.sub(r"}", "]", row[i[0]])
 cmd = "perl process_str.pl -str1 "row[i[0]]" -str2 "row[i[k]]""
 os.system(cmd)

但是我在运行python脚本时看到以下错误:

cmd = "perl process_str.pl -str1 "row[i[0]]" -str2 "row[i[k]]""
                                ^
SyntaxError: invalid syntax

1 个答案:

答案 0 :(得分:2)

可以使用以下内容:

subprocess.call([ "perl", "process_str.pl", "-str1", row[i[0]], "-str2", row[i[k]] ])

当我们可以直接启动perl时,调用shell启动perl是没有意义的。并且由于我们避免使用shell,因此避免了必须构建shell命令。