[파이썬] `tkinter`에서 CSV 파일 읽기 및 쓰기

CSV 파일은 Comma-Separated Values의 약자로, 데이터를 쉼표(또는 다른 구분 기호)로 구분하여 텍스트 파일로 저장하는 방식입니다. tkinter는 파이썬의 표준 GUI (Graphical User Interface) 라이브러리로, 사용자 인터페이스를 만들 수 있는 기능을 제공합니다. 이번 블로그 포스트에서는 tkinter를 사용하여 CSV 파일을 읽고 쓰는 방법을 알아보겠습니다.

CSV 파일 읽기

CSV 파일을 읽기 위해 csv 모듈을 사용할 수 있습니다. 해당 모듈은 파이썬의 내장 모듈로, CSV 파일을 처리하는 기능을 제공합니다. 아래는 tkintercsv 모듈을 사용하여 CSV 파일을 읽고 내용을 출력하는 간단한 예제입니다.

import tkinter as tk
import csv

def read_csv(file_path):
    with open(file_path, 'r') as file:
        csv_reader = csv.reader(file)
        for row in csv_reader:
            print(row)

# Tkinter 창 생성
window = tk.Tk()

# CSV 파일 읽기 버튼 생성
read_button = tk.Button(window, text="CSV 파일 읽기", command=lambda: read_csv('file.csv'))
read_button.pack()

# Tkinter 창 실행
window.mainloop()

위의 코드에서는 read_csv 함수를 정의하여 CSV 파일을 읽고, csv.reader 객체를 이용하여 행(row)을 출력하는 방법을 보여줍니다. 또한, tkinter를 사용하여 버튼을 생성하고 해당 버튼을 클릭하면 read_csv 함수가 호출되도록 설정하였습니다. 이제 위의 코드를 실행하면 CSV 파일의 내용이 출력됩니다.

CSV 파일 쓰기

CSV 파일을 작성하기 위해서도 csv 모듈을 사용할 수 있습니다. 아래는 tkintercsv 모듈을 사용하여 사용자 입력을 받아 CSV 파일에 기록하는 예제입니다.

import tkinter as tk
import csv

def write_csv(file_path, data):
    with open(file_path, 'w', newline='') as file:
        csv_writer = csv.writer(file)
        for row in data:
            csv_writer.writerow(row)

# Tkinter 창 생성
window = tk.Tk()

# 사용자 입력 받기
input_data = []
for i in range(3):
    row = []
    for j in range(3):
        entry = tk.Entry(window)
        entry.grid(row=i, column=j)
        row.append(entry)
    input_data.append(row)

# CSV 파일 쓰기 버튼 생성
write_button = tk.Button(window, text="CSV 파일 쓰기", command=lambda: write_csv('file.csv', [[entry.get() for entry in row] for row in input_data]))
write_button.grid(row=3, column=0, columnspan=3)

# Tkinter 창 실행
window.mainloop()

위의 코드에서는 write_csv 함수를 정의하여 사용자로부터 입력 받은 데이터를 csv.writer 객체를 이용하여 CSV 파일에 기록하는 방법을 보여줍니다. 또한, tkinter를 사용하여 3x3 크기의 텍스트 상자를 생성하고, 해당 상자에 입력한 데이터를 2차원 리스트 형태로 변환하여 write_csv 함수에 전달하는 방식입니다. 버튼을 클릭하면 write_csv 함수가 호출되며, 입력된 데이터가 CSV 파일로 저장됩니다.

이렇게 tkinter를 사용하여 CSV 파일을 읽고 쓸 수 있습니다. CSV 파일은 데이터 관리에 유용한 형식이므로, 해당 방법을 통해 파이썬 프로그램에서 CSV 파일을 쉽게 처리할 수 있습니다.