print() 함수로 파일에 기록(출력)하기
print()
함수를 사용하면 기본적으로 콘솔창에 출력이 된다.
그런데 이걸 파일에 기록
하고 싶을 때가 있는데 이 때에는 sys.stdout
을 redirection
해 주면 된다.
아래의 예제코드를 보자.
1
2
3
4
5
6
7
8
9
10
import sys
original_stdout = sys.stdout # original stdout을 임시 저장
file_path = ".\\log_test.txt"
log = open(file_path, "w")
sys.stdout = log # stdout을 log_test.txt로 redirection
print("hello world")
sys.stdout = original_stdout # sys.stdout을 원래로 돌림.
print("printing at console")
결과를 보면 콘솔창에는 아무런 출력이 없고 아래와 같이 log_test.txt
파일에 출력을 명령한 hello world
가 입력되어 있는 것을 볼 수 있다.
그리고 stdout을 원래대로 돌려놓고 print 한 것은 console창에 잘 출력이 되는 것을 볼 수 있다.
1
printing at console
print() 함수로 파일에 기록(출력)하기 - Context Manager
이번에는 context manager
를 이용해서 파일에 출력하는 것을 보자.
1
2
3
4
5
6
7
8
9
10
11
import sys
file_path = ".\\log_test.txt"
with open(file_path, 'w') as log:
original_write = sys.stdout
sys.stdout = log
print("hello world!")
sys.stdout = original_write
print("printing at console")
마찬가지로 잘 출력이 되는 것을 확인 할 수 있다.
1
printing at console
끝~👌