我正在编写一个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
答案 0 :(得分:2)
可以使用以下内容:
subprocess.call([ "perl", "process_str.pl", "-str1", row[i[0]], "-str2", row[i[k]] ])
当我们可以直接启动perl
时,调用shell启动perl
是没有意义的。并且由于我们避免使用shell,因此避免了必须构建shell命令。