Мне нужно вывести все мои операторы печати как в терминал, так и в файл.
Я нашел решение в этом вопросе stackoverflow
Поэтому я использую
class Tee(object):
def __init__(self, name):
self.file = open(name, "a")
self.stdout = sys.stdout
sys.stdout = self
def __del__(self):
sys.stdout = self.stdout
self.file.close()
def write(self, data):
self.file.write(data)
self.stdout.write(data)
sys.stdout = Tee("log.txt")
Это прекрасно работает,
Моя проблема - когда я хочу прекратить запись в файл и вернуться к нормальной работе, которая выполняется только для терминала
Я попытался использовать del (sys.stdout) для вызова метода del , но безуспешно.
я даже пытался изменить последнюю строку на:
multiple_print = Tee("log.txt")
sys.stdout = multiple_print
, а затем использовать del (множественный_принт) и не удалось
Независимо от того, что я пробовал, дальнейшее использование print все еще записывается в терминал и в файл обоих.
Есть идеи?