无法从Perl中捕获Python中的单引号字符串

时间:2014-09-18 07:07:17

标签: python perl

我有一个Perl脚本,我从中调用Python脚本。

我正在使用:

system "python script.py '".$var1."' '".$var2."' '".$var3."' '".$var4."' '".$var5."'";

其中,$var1 = "'Nostoc azollae' 0708",在字符串中有单引号。

script.py脚本中,我正在使用:

var1 = sys.argv[1]

如果我打印var1,它只打印:Nostoc,其余部分不打印,其余部分正常工作。

因此,很明显Python脚本没有收到包含'的字符串。

什么可以解决这个问题?

1 个答案:

答案 0 :(得分:3)

通过使用单独的参数而不是将它们全部连接在一起使用system()时避免shell调用,

system("python", "script.py", $var1, $var2, $var3, $var4, $var5);