调用一个从perl返回值的python脚本

时间:2012-12-18 14:31:36

标签: python perl

我有一个python函数

import commands
output=commands.getputput("ls -l")
print output
return output

我需要从我的perl脚本中获取python函数的返回值

my($command)=`$python_script_path`;
print $command;

我的问题是,通过在python中打印输出我可以在屏幕上获得我的结果,但我实际上也需要Perl脚本中的输出,所以我宁愿返回它。我怎样才能实现它? 另请注意我不想使用内联python。谢谢!

3 个答案:

答案 0 :(得分:1)

自2.6以来,commands模块已弃用。请改用subprocess

p = subprocess.Popen(['ls', '-l'], stdout=subprocess.PIPE, shell=True)
print p.communicate()[0]

答案 1 :(得分:0)

返回代码是数值。

最好的办法是打印输出并在Perl中捕获输出。

这可能会有所帮助:How to call a python script from Perl?

答案 2 :(得分:0)

你也可以在'open'文件中打开管道到Python脚本:

open PYTHON, "$python_script_path|";
while(<PYTHON>){
 print;
}
close PYTHON;