В Python, как перехватить стандартный вывод из общей библиотеки c ++ в переменную

По некоторым другим причинам я использовал общую библиотеку c ++, которая выводит некоторые тексты в стандартный вывод. В Python я хочу захватить вывод исохранить в переменную, Есть много подобных вопросов о перенаправлении stdout, но не работают в моем коде.

Пример:Подавление вывода вызова модуля вне библиотеки

1 import sys
2 import cStringIO
3 save_stdout = sys.stdout
4 sys.stdout = cStringIO.StringIO()
5 func()
6 sys.stdout = save_stdout

В строке 5FUNC () вызовет разделяемую библиотеку, тексты, сгенерированные разделяемой библиотекой, все еще выводятся на консоль! Если изменитьfunc () для печати "привет", оно работает!

Моя проблема:

как захватить стандартный вывод совместно используемой библиотеки c ++к переменной?Почему при использовании StringIO не удается захватить выходные данные из общей библиотеки?

Ответы на вопрос(5)

Ваш ответ на вопрос