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
для доступа ко всему, что было напечатано ранее.