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

'open'ファイルでPythonスクリプトへのパイプを開くこともできます。

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

戻りコードは数値です。

最善の策は、出力を印刷し、Perlで出力をキャプチャすることです。

これは役立つかもしれません:PerlからPythonスクリプトを呼び出す方法は?

于 2012-12-18T14:35:24.740 に答える