'sys라이브러리를 이용해서 파이썬 출력 결과를 출력도 하면서 텍스트 파일로 저장하는 방법을 알려줘'
1.
import os
import sys
scriptname = os.path.basename(__file__)
class Tee:
def __init__(self, filename, mode='w'):
self.terminal = sys.stdout # 원래 터미널 출력
self.file = open(filename, mode, encoding='utf-8')
def write(self, message):
self.terminal.write(message) # 터미널에 출력
self.file.write(message) # 파일에 저장
def flush(self):
self.terminal.flush()
self.file.flush()
def close(self):
self.file.close()
# 사용법
sys.stdout = Tee('cmdResult_' + scriptname[:-3] + '.txt')
print("안녕하세요!")
print("이 내용은 터미널에도 출력되고 파일에도 저장됩니다.")
# 원래 stdout 복원 (선택사항)
sys.stdout.close()
sys.stdout = sys.stdout.terminal
2.
import os
import sys
from datetime import datetime
scriptname = os.path.basename(__file__)
timestamp = datetime.now().strftime('%Y%m%d_%H%M%S')
class Tee:
def __init__(self, filename, mode='w'):
self.terminal = sys.stdout # 원래 터미널 출력
self.file = open(filename, mode, encoding='utf-8')
def write(self, message):
self.terminal.write(message) # 터미널에 출력
self.file.write(message) # 파일에 저장
def flush(self):
self.terminal.flush()
self.file.flush()
def close(self):
self.file.close()
# 사용법
timestamp = datetime.now().strftime('%Y%m%d_%H%M%S')
sys.stdout = Tee('cmdResult_' + scriptname[:-3] + '_' + timestamp + '.txt')
print("안녕하세요!")
print("이 내용은 터미널에도 출력되고 파일에도 저장됩니다.")
# 원래 stdout 복원 (선택사항)
sys.stdout.close()
sys.stdout = sys.stdout.terminal
'Python' 카테고리의 다른 글
| 파이썬 모든 패키지,라이브러리 업데이트 하기,Updating All Packages In A Virtual Environment on Windows (0) | 2022.02.18 |
|---|---|
| [python] [ipynb to py 변환 방법] jupyter nbconvert --to python [filename].ipynb (0) | 2021.04.27 |
| python 주피터 노트북(jupyter notebook) 색상 및 테마변경하기 (0) | 2020.11.25 |
| How can we improve coding skill?? (0) | 2020.11.20 |
| Python youtube_dl.YoutubeDL() Examples (0) | 2020.11.03 |


