2

我有一个python函数

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

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

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

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

4

3 回答 3

2

命令模块自 2.6 起已弃用。改用子流程

p = subprocess.Popen(['ls', '-l'], stdout=subprocess.PIPE, shell=True)
print p.communicate()[0]
于 2012-12-18T14:38:25.100 回答
0

返回代码是数值。

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

这可能会有所帮助:如何从 Perl 调用 python 脚本?

于 2012-12-18T14:35:24.740 回答
0

您还可以在文件“打开”中打开指向 Python 脚本的管道:

open PYTHON, "$python_script_path|";
while(<PYTHON>){
 print;
}
close PYTHON;
于 2012-12-18T17:04:11.907 回答