Код: Выделить всё
class Log:
path = ""
first = True
@classmethod
def init(cls,path):
Log.path = path
Log.first = True
@classmethod
def print(cls,*args,**kwargs):
builtins.print(*args,**kwargs)
if Log.path == "":
return
if Log.first:
mode = 'w'
Log.first = False
else:
mode = 'a'
with open(Log.path,mode) as f:
builtins.print(*args,**kwargs,file=f)
Я подозреваю, что проблема в том, что print() просто обрабатывает все как стандартный вывод и временно перенаправляет стандартный вывод на файловый объект, хотя в этом случае я ожидал бы пустой файл. Я могу просто изменить последний оператор, чтобы использовать «f.write» вместо «builtins.print», но тогда я потеряю все форматирование, выполненное функцией print(). Есть ли способ получить отформатированный результат функции print() в виде строки?
Подробнее здесь: https://stackoverflow.com/questions/798 ... in-pythonw
Мобильная версия