Python фиксирует всю печатную продукцию

Я ищу для написания программ на основе консоли в python, которые могут выполнять функции для выполнения общих задач, довольно общие. Можно ли записать все, записанные на консоль, вызовы печати в функции без необходимости возвращать строку, подобно тому, как bash и оболочка Windows разрешают вывод сообщения программы в текстовый файл, т.е.

IPCONFIG > ipconfig.txt

но делая это внутри программы python, где вызывается функция, все, что было напечатано на консоли внутри этой функции, собрано в виде списка строк, а затем может быть сохранено в txt файле выбора пользователя

Ответ 1

Вы можете сделать это, установив sys.stdout как файл по вашему выбору

import sys

sys.stdout = open('out.dat', 'w')
print "Hello"

sys.stdout.close()

Не будет выводиться какой-либо вывод, но будет создан файл с именем out.dat с напечатанным текстом.

Обратите внимание, что это необязательно быть фактическим файлом, но может быть экземпляром StringIO, который вы можете просто использовать getvalue для доступа ко всему, что было напечатано ранее.