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 예제를 통해 더욱 유용한 정보를 공유하겠습니다. 😊
반응형
'프로그래밍 언어 > Python' 카테고리의 다른 글
Python 개발자가 반드시 알아야 할 내장 라이브러리 6가지 (2) | 2024.11.28 |
---|---|
Python 문자열(str) 처리 가이드: 기초부터 고급까지 (0) | 2024.11.27 |
Python 프로젝트를 체계적으로! 디렉터리 구조와 모듈 관리 방법 (0) | 2024.11.26 |
Python 패키지 관리 도구, pip 완벽 가이드 (0) | 2024.11.24 |
Conda 가상환경(venv) 생성 및 관리 방법 (0) | 2024.11.23 |