IT & Programming/python
python file modules 파이썬에서 파일 처리
오스카리
2025. 5. 12. 00:38
파이썬에서 파일 처리는 매우 중요한 기능 중 하나입니다. open() 함수를 기반으로 다양한 파일 입출력을 처리할 수 있으며, 텍스트 파일뿐 아니라 CSV, JSON 등 다양한 포맷도 다룰 수 있습니다.
이번 설명에서는 텍스트 파일 입출력, 파일 모드, 경로 처리, CSV/JSON 처리, 모듈 정리까지 체계적으로 안내해드리겠습니다.
1. 기본 파일 열기: open() 함수
f = open("파일경로", "모드", encoding="인코딩")
주요 모드 설명
모드 의미 동작 요약
'r' | 읽기 | 파일이 없으면 에러 발생 |
'w' | 쓰기 | 기존 내용 삭제, 새로 작성 |
'a' | 추가 | 파일 끝에 내용 덧붙이기 |
'x' | 배타적 생성 | 파일이 있으면 에러 발생 |
'b' | 바이너리 모드 | 이미지 등 비텍스트 처리용 |
'+' | 읽기 + 쓰기 | 읽고 쓰기 모두 가능 |
예시:
f = open("memo.txt", "w", encoding="utf-8")
f.write("파이썬 파일쓰기 연습")
f.close()
2. 읽기/쓰기 함수
텍스트 쓰기
f.write("한 줄 추가\n")
텍스트 읽기
f = open("memo.txt", "r", encoding="utf-8")
content = f.read()
f.close()
print(content)
줄 단위 읽기
f = open("memo.txt", "r", encoding="utf-8")
lines = f.readlines()
for line in lines:
print(line.strip())
f.close()
3. with 구문 (권장 사용법)
open()을 사용할 때는 파일을 자동으로 닫아주는 with 구문을 사용하는 것이 안전합니다.
with open("data.txt", "r", encoding="utf-8") as f:
data = f.read()
print(data)
장점: 예외가 발생해도 파일이 자동으로 닫힘
4. 파일 경로 다루기: os, pathlib
현재 작업 디렉토리 확인
import os
print(os.getcwd())
파일 존재 여부 확인
os.path.exists("data.txt") # True or False
pathlib 사용 (Python 3.4 이상 권장)
from pathlib import Path
p = Path("data.txt")
print(p.exists()) # True or False
5. CSV 파일 처리: csv 모듈
파일 쓰기
import csv
with open("score.csv", "w", newline="", encoding="utf-8") as f:
writer = csv.writer(f)
writer.writerow(["이름", "국어", "수학"])
writer.writerow(["홍길동", 90, 95])
파일 읽기
with open("score.csv", "r", encoding="utf-8") as f:
reader = csv.reader(f)
for row in reader:
print(row)
6. JSON 파일 처리: json 모듈
저장하기
import json
data = {"이름": "홍길동", "나이": 30}
with open("user.json", "w", encoding="utf-8") as f:
json.dump(data, f, ensure_ascii=False, indent=2)
불러오기
with open("user.json", "r", encoding="utf-8") as f:
user = json.load(f)
print(user["이름"])
7. 파일 삭제 및 이름 변경
import os
os.rename("old.txt", "new.txt") # 이름 변경
os.remove("sample.txt") # 파일 삭제
8. 정리
목적 사용 모듈 설명
텍스트 파일 | open() | 읽기/쓰기/추가 |
자동 닫기 | with open() | 파일 자동 종료 처리 |
디렉토리 제어 | os, pathlib | 파일 존재 확인, 경로 제어 |
표 데이터 | csv | 테이블 형태 데이터 저장/읽기 |
구조화 데이터 | json | 딕셔너리 ↔ JSON 파일 저장/읽기 |
반응형