Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将python参数传递给perl脚本?_Python - Fatal编程技术网

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

如何将python参数传递给perl脚本?,python,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&q

我正在编写一个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”行[i[0]]”-str2”行[i[k]]
^
SyntaxError:无效语法

可以使用以下功能:

subprocess.call([“perl”、“process_str.pl”、“-str1”、行[i[0]、“-str2”、行[i[k]]))

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

可以使用以下命令:

subprocess.call([“perl”、“process_str.pl”、“-str1”、行[i[0]、“-str2”、行[i[k]]))

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

对内部引号使用简单引号而不是双引号
cmd=“perl process_str.pl-str1'row[i[0]]'-str2'row[i[k]'”
删除了perl标记,因为这个问题与perl无关。你正在建立一个shell命令,不要按照azro的建议去做。1) 这将不会插入值,而是按原样传递表达式;2)如果它确实插入,它将遭受错误的简单引号,而不是内部引号的双引号
cmd=“perl process_str.pl-str1'row[i[0]]'-str2'row[i[k]'”
删除了perl标记,因为这个问题与perl无关。你正在建立一个shell命令,不要按照azro的建议去做。1) 这将不会插值,而是按原样传递表达式,并且2)如果它确实插值,它将受到错误输出的影响?你是说程序打印到标准输出上的内容?要将程序打印到标准输出的内容打印到标准输出吗?嗯,这已经发生了。perl脚本的输出是字符串,当我运行pythin时,它不会给出任何输出。如果它没有输出任何东西,它也没有输出任何东西。我已经独立运行了perl脚本,它对我来说工作正常。然后,当我在python中包含perl脚本时,它是nt working.perl process_str.pl-str1“iod.BP_0_D[104,44,32,20,8105,45,33,21,9]”-str2“MCA_DQS_H[9]RSVD),(MCA_DQS_H[8:5]_MCA_DQS_DM[3:0]),MCA_DQS_H[4:0]“BP_D[104],MCA_DQS_H_H_H_H_9_[8]、MCA_DQS_[4:0]、MCA _ _(MCA(dq(MCA(D(D)D(?你是说程序打印到标准输出上的内容?要将程序打印到标准输出的内容打印到标准输出吗?嗯,这已经发生了。perl脚本的输出是字符串,当我运行pythin时,它不会给出任何输出。如果它没有输出任何东西,它也没有输出任何东西。我已经独立运行了perl脚本,它对我来说工作正常。然后,当我在python中包含perl脚本时,它是nt working.perl process_str.pl-str1“iod.BP_0_D[104,44,32,20,8105,45,33,21,9]”-str2“MCA_DQS_H[9]RSVD),(MCA_DQS_H[8:5]_MCA_DM[3:0]),MCA_DQS_H[4:0]“BP_D[104],MCA_DQS_H_H_H_H[9]、MCA_DQS_[4:0]、MCA_-rsu[8,MCA_[8]