Я написал класс tee()
, который перенаправляет стандартный вывод на терминал и в файл, основываясь на ответе Триптиха: .
. Работает первые пару раз. моя программа запускается, но в 3-й раз я получаю:
File "C:\Users\Dave\data\Code\Python\lib\nerdlib.py", line 351, in write
with open(self.name, "a", encoding="utf-8") as f:
TypeError: expected str, bytes or os.PathLike object, not NoneType
Кажется, что даже после выполнения sys.stdout = self.old_stdout
(восстановление вектора выполнения в том месте, с которого оно началось), каким-то образом мой метод записи все еще получает вызывают (в этом случае ожидается ошибка).
Но почему мой метод все еще вызывается?
Эта ошибка возникает в Spyder среда разработки - не уверен, что это связано.
Код ниже - достаточно просто.