Python 파일 I/O와 JSON 데이터 처리 가이드

2024. 11. 25. 21:10프로그래밍 언어/Python

 

Python은 파일을 읽고 쓰는 작업을 간단하게 처리할 수 있는 강력한 기능을 제공합니다. 이번 글에서는 텍스트 파일, CSV 파일, JSON 파일과 같은 주요 파일 형식을 다루는 방법과 데이터를 효율적으로 처리하는 방법을 살펴보겠습니다.

 


1. 파일 읽기와 쓰기의 기본: 텍스트 파일

Python에서 텍스트 파일을 처리하려면 내장 함수 open()을 사용합니다. 안전한 파일 처리를 위해 with 구문을 사용하는 것이 권장됩니다.

 

1.1 텍스트 파일 읽기

# sample.txt 파일 읽기 
with open("sample.txt", "r", encoding="utf-8") as file:
    content = file.read()

print(content)
  • "r": 읽기 모드
  • encoding="utf-8": 파일 인코딩 설정

 

1.2 텍스트 파일 쓰기

# sample.txt 파일에 내용 쓰기 
with open("sample.txt", "w", encoding="utf-8") as file:
    file.write("Python으로 파일을 처리하는 예제입니다.")
  • "w": 쓰기 모드(기존 내용 삭제).
  • "a": 기존 내용에 추가(append).

 


2. CSV 파일 처리

CSV(Comma-Separated Values)는 데이터를 행(row)과 열(column)로 구성하여 저장하는 간단한 형식입니다. Python의 csv 모듈pandas 라이브러리를 활용하면 편리하게 처리할 수 있습니다.

 

2.1 CSV 파일 읽기 (csv 모듈)

import csv

with open("data.csv", "r", encoding="utf-8") as file:
    reader = csv.reader(file)
    for row in reader:
        print(row)

 

2.2 CSV 파일 쓰기

import csv

data = [
    ["Name", "Age", "City"],
    ["Alice", 30, "New York"],
    ["Bob", 25, "London"],
    ["Charlie", 35, "Paris"]
]

with open("data.csv", "w", encoding="utf-8", newline="") as file:
    writer = csv.writer(file)
    writer.writerows(data)
  • newline="": CSV 파일 작성 시 빈 줄 방지.

 

2.3 CSV 파일 처리 (pandas)

import pandas as pd

# CSV 파일 읽기
df = pd.read_csv("data.csv")
print(df)

# CSV 파일 쓰기
df.to_csv("output.csv", index=False)

 

 


3. JSON 파일 처리

JSON(JavaScript Object Notation)은 데이터 교환 형식으로 널리 사용됩니다. Python의 json 모듈을 사용하여 JSON 데이터를 쉽게 다룰 수 있습니다.

 

3.1 JSON 파일 읽기

import json

with open("data.json", "r", encoding="utf-8") as file:
    data = json.load(file)
    print(data)

 

3.2 JSON 파일 쓰기

import json

data = {"name": "Alice", "age": 30, "city": "New York"}
with open("data.json", "w", encoding="utf-8") as file:
    json.dump(data, file, indent=4)
  • indent=4: 보기 좋은 포맷으로 출력.

 


4. 대용량 데이터 처리

대용량 데이터 파일을 처리할 때는 메모리 사용량을 최소화하기 위해 한 줄씩 읽는 방식이 유용합니다.

 

4.1 텍스트 파일 한 줄씩 읽기

with open("large_file.txt", "r", encoding="utf-8") as file:
    for line in file:
        print(line.strip())

 

4.2 CSV 파일 대용량 처리

import pandas as pd

# 대용량 CSV 파일 읽기 
for chunk in pd.read_csv("large_data.csv", chunksize=1000):
    print(chunk.head())  # 첫 5행만 출력
  • chunksize: 한 번에 읽을 행 수를 지정.

 


5. 파일 처리 시 유용한 팁

  • 파일 존재 여부 확인
     
     
import os

if os.path.exists("sample.txt"):
    print("파일이 존재합니다.")
else:
    print("파일이 없습니다.")

 

  • 예외 처리
try:
    with open("sample.txt", "r") as file:
        content = file.read()
except FileNotFoundError:
    print("파일을 찾을 수 없습니다.")

 

 


6. 실전 예제: JSON 데이터를 CSV로 변환하기

아래는 JSON 데이터를 읽어서 CSV 파일로 저장하는 예제입니다.

import json
import csv

# JSON 파일 읽기
with open("data.json", "r", encoding="utf-8") as file:
    data = json.load(file)

# CSV 파일 쓰기
with open("output.csv", "w", encoding="utf-8", newline="") as file:
    writer = csv.writer(file)
    # 헤더 작성
    writer.writerow(data[0].keys())
    # 데이터 작성
    for row in data:
        writer.writerow(row.values())

 

 


결론

Python은 파일 처리와 데이터 관리에서 강력한 도구를 제공합니다. 텍스트, CSV, JSON 등 다양한 형식을 다루는 기본기를 익히면 데이터 분석, 웹 개발, 자동화 작업에서 큰 도움이 됩니다.

앞으로도 실용적인 Python 예제를 통해 더욱 유용한 정보를 공유하겠습니다. 😊

반응형