728x90
반응형

 티스토리 

 

표준 출력 및 오류의 리다이렉션

안녕하세요! 오늘은 PySimpleGUI에서 sys 라이브러리를 이용하여 로그나 출력을 GUI 컴포넌트로 리다이렉션되지 않도록 설정하는 방법에 대해 알아보겠습니다. 개발하시는 도중 GUI에 로그나 출력이 나타나지 않게 하고 싶으시다면, 이 글이 도움이 될 거예요!

728x90

 

1. 코드리뷰 - 리다이렉션 설정

PysimpleGUI 사용시 리다이렉션이 변경되어 콘솔창에 출력안되는 문제를
아래와 같이 sys.stdout , sys.stderr 을 호출하여 복원 하는 코드로 해결.

1. PySimpleGUI와 sys 라이브러리의 기본 이해
먼저, PySimpleGUI는 파이썬에서 간단하게 GUI를 만들 수 있도록 도와주는 라이브러리랍니다. sys 라이브러리는 파이썬 인터프리터와 관련된 변수와 함수를 제공하는데, 여기에는 표준 입출력에 관련된 기능들도 포함돼 있죠.

2. 출력 리다이렉션 설정 방법
PySimpleGUI를 사용할 때는 특히 sys.stdout과 sys.stderr의 리다이렉션을 관리해야 합니다. 기본적으로 PySimpleGUI는 이 두 출력 스트림을 GUI 컴포넌트로 리다이렉션하는데요, 이를 원하지 않는다면 다음과 같이 설정할 수 있습니다.

import PySimpleGUI as sg
# PysimpleGUI 라이브러리 사용을 위해 호출하여 sg 이름으로 줄여서 사용
import sys
# 표준 출력 설정 라이브러리 호출

# 초기 표준 출력과 오류 스트림 저장
original_stdout = sys.stdout
original_stderr = sys.stderr
#윈도우 생성시 변경되는 리다이렉션을 다시 복원하기 위함

# 간단한 윈도우 생성 예제
layout = [[sg.Text("Hello from PySimpleGUI")], [sg.Button("OK")]]

# 윈도우 생성
window = sg.Window("Window Title", layout)

# 이벤트 루프
while True:
    event, values = window.read()
    if event == sg.WIN_CLOSED or event == 'OK':
        break

window.close()

# 윈도우가 닫힌 후 콘솔에 메시지 출력을 위해 표준 스트림 복원
sys.stdout = original_stdout
sys.stderr = original_stderr

print("This will print to the console.")

3. 실용적인 팁
로그 파일 관리: 프로그램의 로그를 파일로 관리하고자 한다면 logging 모듈을 설정해서 로그 출력을 파일로 리다이렉션 할 수 있습니다.
오류 관리: 예기치 못한 오류를 사용자에게 보여주고 싶지 않을 때는 sys.stderr의 출력을 적절히 관리하세요.

마무리

- 이번 포스팅은 표준 출력을 이용하여 PysimpleGUI 종료후 콘솔 출력 문제 해결에 대해 알아봤습니다.

- 이 글을 통해 PySimpleGUI에서 sys 라이브러리를 활용해 로그와 출력을 GUI 컴포넌트로부터 독립적으로 관리하는 방법을 알아보았습니다. 개발하시는 과정에서 이 정보가 유용하게 사용되기를 바랍니다!

반응형
 

궁금한 사항은 lution2@gmail.com로 문의사항  주시면 답변 드리겠습니다.
감사합니다.

728x90
반응형

+ Recent posts