[파이썬] `wxPython`에서의 파일 입출력

파일 입출력은 다양한 프로그래밍 작업에서 중요한 역할을 수행합니다. wxPython 라이브러리는 wx.FileDialog을 통해 파일을 선택하고, wx.TextOutputStream 또는 wx.TextInputStream 클래스를 사용하여 파일에 쓰거나 파일에서 읽을 수 있는 기능을 제공합니다.

파일 선택하기

파일을 선택하기 위해 wx.FileDialog을 사용할 수 있습니다. 이 대화상자는 사용자에게 파일 선택을 요청하고 선택된 파일의 경로를 반환합니다. “열기” 대화상자와 “저장” 대화상자 두 가지 유형이 있습니다.

import wx

app = wx.App()
frame = wx.Frame(None)

# 파일 열기 대화상자 생성
open_dialog = wx.FileDialog(frame, "파일 선택", "", "", "텍스트 파일 (*.txt)|*.txt", wx.FD_OPEN | wx.FD_FILE_MUST_EXIST)

if open_dialog.ShowModal() == wx.ID_OK:
    selected_file = open_dialog.GetPath()
    print("선택된 파일:", selected_file)

open_dialog.Destroy()
frame.Destroy()
app.MainLoop()

파일 쓰기

wx.TextOutputStream 클래스는 텍스트 파일에 내용을 쓰기 위해 사용됩니다. 이 클래스는 wx.FileOutputStream과 함께 사용하여 파일에 텍스트를 씁니다. 아래 예제는 사용자가 지정한 파일에 문자열을 작성하는 방법을 보여줍니다.

import wx

app = wx.App()
frame = wx.Frame(None)

# 파일 저장 대화상자 생성
save_dialog = wx.FileDialog(frame, "파일 저장", "", "", "텍스트 파일 (*.txt)|*.txt", wx.FD_SAVE | wx.FD_OVERWRITE_PROMPT)

if save_dialog.ShowModal() == wx.ID_OK:
    selected_file = save_dialog.GetPath()
    
    # 텍스트 파일에 내용 쓰기
    output_stream = wx.TextOutputStream(wx.FileOutputStream(selected_file))
    output_stream.Write("Hello, World!")
    output_stream.Close()

save_dialog.Destroy()
frame.Destroy()
app.MainLoop()

파일 읽기

wx.TextInputStream 클래스를 사용하여 텍스트 파일의 내용을 읽을 수 있습니다. 이 클래스는 wx.FileInputStream과 함께 사용하여 파일에서 텍스트를 읽습니다. 아래 예제는 사용자가 선택한 파일의 내용을 읽고 출력하는 방법을 보여줍니다.

import wx

app = wx.App()
frame = wx.Frame(None)

# 파일 열기 대화상자 생성
open_dialog = wx.FileDialog(frame, "파일 선택", "", "", "텍스트 파일 (*.txt)|*.txt", wx.FD_OPEN | wx.FD_FILE_MUST_EXIST)

if open_dialog.ShowModal() == wx.ID_OK:
    selected_file = open_dialog.GetPath()
    
    # 텍스트 파일에서 내용 읽기
    input_stream = wx.TextInputStream(wx.FileInputStream(selected_file))
    file_contents = input_stream.ReadAll()
    input_stream.Close()

    print("파일 내용:\n", file_contents)

open_dialog.Destroy()
frame.Destroy()
app.MainLoop()

파일 입출력은 wxPython을 사용하는 프로젝트에서 중요한 기능입니다. wx.FileDialog, wx.TextOutputStream, wx.TextInputStream 클래스 등을 사용하여 애플리케이션에서 파일을 선택하고 생성하며, 파일의 내용을 쓰고 읽을 수 있습니다. 이러한 기능을 활용하여 wxPython 애플리케이션에 파일 입출력 기능을 추가할 수 있습니다.