最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

標準出力と標準エラーの Python へのリダイレクト

この例では、MATLAB® 関数から標準出力と標準エラーを Python® StringIO オブジェクトにリダイレクトする方法を説明します。

Python 2.7 の場合、StringIO モジュールを使用して StringIO オブジェクトを作成します。dec2hex から警告メッセージを取得するには、stdout および stderr を指定します。

import matlab.engine
eng = matlab.engine.start_matlab()
import StringIO
out = StringIO.StringIO()
err = StringIO.StringIO()
ret = eng.dec2hex(2**60,stdout=out,stderr=err)
print(out.getvalue())
Warning: At least one of the input numbers is larger than the largest integer-valued 
floating-point number (2^52). Results may be unpredictable.

Python 3.x の場合、io モジュールを使用して StringIO オブジェクトを作成します。

import matlab.engine
eng = matlab.engine.start_matlab()
import io
out = io.StringIO()
err = io.StringIO()
ret = eng.dec2base(2**60,16,stdout=out,stderr=err)

入力引数が 2^52 より大きい場合、dec2base は例外を発行します。取得した err 内のエラー メッセージを表示します。

print(err.getvalue())
Error using dec2base (line 22)
First argument must be an array of integers, 0 <= D <= 2^52.

参考

|

関連するトピック