exponenta event banner

Перенаправление стандартного вывода и ошибки в 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)

dec2base вызывает исключение, если входной аргумент больше 2 ^ 52. Отображение сообщения об ошибке, записанного вerr.

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

См. также

|

Связанные темы