Следующий код распечатает вывод на консоль, а также в файл log.txt
.
Код
import sys
class multifile(object):
def __init__(self, files):
self._files = files
def __getattr__(self, attr, *args):
return self._wrap(attr, *args)
def _wrap(self, attr, *args):
def g(*a, **kw):
for f in self._files:
res = getattr(f, attr, *args)(*a, **kw)
return res
return g
sys.stdout = multifile([ sys.stdout, open('log.txt', 'w') ])
name = input('What is your name: ')
print('Your name is',name)
Консольный вывод
C:\>python script.py
What is your name: ABC
Your name is ABC
log.txt
файл
What is your name: Your name is ABC
К сожалению, ввод ABC\n
отображался только на консоли, но не в файле log.txt
.
Можно ли получить все как на консоль, так и на файл log.txt
?
Желаемый вывод как в консоли, так и в log.txt
файле
What is your name: ABC
Your name is ABC
Я хотел бы получить одинаковый (точный) вывод как в консоли, так и в файле log.txt
?
Если есть более простой способ сделать это, пожалуйста, дайте мне знать.