Python获取子进程的输出

2024-04-20 07:38:33 发布

您现在位置:Python中文网/ 问答频道 /正文

Perl文件1.pl:

#!/usr/local/bin/perl -w

($b) = @ARGV;    
$a = 1;
$c = $a + $b;
print "$c\n";

exit;

python文件1.py

^{pr2}$

退房

$python 1.py

输出:

3
0

输出应该是3,怎么了?在


Tags: 文件pybinusrlocalexitperlpl
3条回答

0returncode attribute。在

$perl so.pl 2
3
$ echo $?
0            #this gets stored in `res`

只需使用:

^{pr2}$

如果您不想在输出中使用0。在

也可以使用^{}将命令的输出存储在变量中。在

>>> res = subprocess.check_output(["perl", "so.pl", '2'])
>>> print res
3

在perl脚本中,使用print将内容打印到屏幕上,使用exit返回值。不带数字调用exit相当于exit 0,通常表示成功。在

在您的例子中,perl将打印3并返回0。在

稍后,python忽略3,并打印0。在

如果要将一个数字从perl传递给python,可以使用perl中的exit $c返回该数字,或者告诉python检查perl的输出。在

来自python的0。i、 e将结果存储在res变量中,3从perl程序打印

相关问题 更多 >