[python] PySimpleGUI를 사용하여 문서 변환 도구 만들기

PySimpleGUI는 Python에서 GUI 애플리케이션을 만들기 위한 쉽고 간단한 인터페이스를 제공하는 패키지입니다. 이 예제에서는 PySimpleGUI를 사용하여 문서 변환 도구를 만드는 방법을 살펴보겠습니다.

필요한 패키지 설치

먼저 PySimpleGUI 패키지를 설치해야 합니다. 아래 명령을 사용하여 설치할 수 있습니다.

pip install PySimpleGUI

GUI 인터페이스 만들기

다음으로, PySimpleGUI를 사용하여 GUI 인터페이스를 만들어야 합니다. 이 예제에서는 텍스트 파일을 선택하고, 사용자가 선택한 파일을 다른 형식으로 변환할 수 있는 기능을 제공하는 간단한 프로그램을 만들어 보겠습니다.

import PySimpleGUI as sg

layout = [[sg.Text('텍스트 파일을 선택하세요:')],
          [sg.Input(), sg.FileBrowse()],
          [sg.Button('변환'), sg.Button('취소')]]

window = sg.Window('문서 변환 도구', layout)

while True:
    event, values = window.read()
    if event == sg.WINDOW_CLOSED or event == '취소':
        break
    elif event == '변환':
        # 변환 로직을 구현하는 함수 호출
        convert_file(values[0])

window.close()

위 코드에서는 텍스트 파일을 선택하기 위해 sg.FileBrowse()를 사용하고, 변환을 위한 버튼으로 ‘변환’과 ‘취소’를 추가하였습니다. 이렇게 만든 GUI 인터페이스는 sg.Window를 통해 만들어지며, window.read()를 통해 사용자 입력을 받아 처리합니다.

변환 로직 구현

변환 로직은 사용자가 선택한 파일을 다른 형식으로 변환하는 기능을 구현하는 부분입니다. 이 예제에서는 간단한 텍스트 파일을 대문자로 변환하는 함수를 구현하였습니다.

def convert_file(filepath):
    try:
        with open(filepath, 'r') as file:
            contents = file.read()
        
        converted_contents = contents.upper()
        
        new_filepath = filepath.split('.')[0] + '_converted.txt'
        with open(new_filepath, 'w') as new_file:
            new_file.write(converted_contents)
        
        sg.popup(f'{new_filepath}로 변환되었습니다.')
        
    except Exception as e:
        sg.popup_error(f'변환 중 오류가 발생했습니다: {str(e)}')

위 코드에서는 사용자가 선택한 파일 경로를 받아 해당 파일을 열고, 파일 내용을 읽어와 대문자로 변환합니다. 변환된 내용을 새로운 파일로 저장하고, 변환된 파일 경로를 팝업 창으로 보여줍니다. 오류가 발생한 경우에는 오류 메시지를 팝업으로 보여줍니다.

이제 문서 변환 도구를 PySimpleGUI를 사용하여 만들어 보았습니다. 이 예제를 기반으로 원하는 변환 로직을 구현하여 다양한 형식의 문서를 변환할 수 있습니다.

참고 자료