Main Content

표준 출력 및 표준 오류를 Python으로 리디렉션하기

이 예제에서는 MATLAB® 함수에서 Python® StringIO 객체로 표준 출력 및 표준 오류를 리디렉션하는 방법을 보여줍니다.

Python 2.7에서는 StringIO 모듈을 사용하여 StringIO 객체를 만듭니다. dec2hex에서 반환하는 경고 메시지를 캡처하기 위해 stdoutstderr을 지정합니다.

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.

참고 항목

|

관련 항목