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 파일 저장/읽기

 

반응형