По другим причинам, используемая совместно используемая библиотека С++ выводит некоторые тексты на стандартный вывод. В 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
В строке 5 func() вызовет общую библиотеку, тексты, созданные общей библиотекой, будут выводиться на консоль! Если изменить func(), чтобы напечатать "привет" , это сработает!
Моя проблема:
- как записать stdout общей библиотеки С++ в переменную?
- Почему использование StringIO не может захватывать выходы из общей библиотеки?