Perl文件1.pl:
#!/usr/local/bin/perl -w
($b) = @ARGV;
$a = 1;
$c = $a + $b;
print "$c\n";
exit;
python文件1.py
#!/usr/bin/python
# -*- coding: utf-8 -*-
import subprocess
b = 2
res = subprocess.call(["perl", "1.pl", str(b)])
print res
结账
$python 1.py
输出:
3
0
输出应该是3,那有什么不对?
答案 0 :(得分:3)
$perl so.pl 2
3
$ echo $?
0 #this gets stored in `res`
只需使用:
subprocess.call(["perl", "1.pl", str(b)])
如果您不希望输出中有0
。
您还可以使用subprocess.check_output
将命令的输出存储在变量中。
>>> res = subprocess.check_output(["perl", "so.pl", '2'])
>>> print res
3
答案 1 :(得分:1)
0。一世。 e您将结果存储在res变量中,3是从perl程序打印
答案 2 :(得分:1)
在您的perl脚本中,您使用print
打印某些内容到屏幕,exit
返回一个值。在没有号码的情况下拨打exit
相当于exit 0
,这通常代表成功。
在您的情况下,您的perl将打印3
并返回0
。
稍后python会忽略3
并打印0
。
如果你想从perl传递一个数字到你的python,或者在perl中使用exit $c
返回该数字,或者告诉python检查你的perl的输出。