파일 입출력은 다양한 프로그래밍 작업에서 중요한 역할을 수행합니다. 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
애플리케이션에 파일 입출력 기능을 추가할 수 있습니다.