Вы сказали, что ваш скрипт "вызывает кучу функций", поэтому я предполагаю, что они являются функциями python, доступными из вашей программы. Я также предполагаю, что вы используете print
для генерации вывода во всех этих функциях. Если это так, вы можете просто заменить sys.stdout
на StringIO.StringIO
, который будет перехватывать все, что вы пишете. Затем вы можете наконец вызвать метод .getValue
на вашем StringIO
, чтобы получить все, что было отправлено на выходной канал. Это также будет работать для внешних программ, использующих модуль подпроцесса, которые записывают в sys.stdout
.
Это дешевый способ. Я бы порекомендовал вам сделать вывод, используя модуль logging
. У вас будет намного больше контроля над тем, как он выводит данные, а также вы можете управлять им проще.