본문 바로가기
파이썬

[Python] 파일 읽기/쓰기 기본 사용법 (open, read, write)

by JJONY 2025. 4. 3.
반응형

Python을 활용한 자동화나 데이터 처리 작업에서 파일 입출력은 가장 기본적인 기능 중 하나입니다. 텍스트 파일을 읽거나, 새로운 파일을 생성하여 데이터를 저장하는 등의 작업을 할 때는 open(), read(), write() 함수 등을 사용합니다. 이번 포스팅에서는 Python에서 파일을 읽고 쓰는 기본적인 방법과, 자주 발생하는 실수 및 오류를 함께 정리해보겠습니다.

파일 읽기/쓰기 기본 사용법 (open, read, write)


1. 파일 열기: open() 함수

1. 기본 구조

open(file, mode='r', encoding=None)
  • file: 파일 경로
  • mode: 동작 모드 ('r', 'w', 'a', 'b' 등)
  • encoding: 텍스트 인코딩 (한글 파일에는 'utf-8' 권장)

2. 모드 종류

모드 설명
'r' 읽기 전용 (기본값, 파일이 없으면 오류 발생)
'w' 쓰기 전용 (기존 파일 덮어씀)
'a' 추가 모드 (기존 내용 뒤에 추가)
'b' 바이너리 모드 (이미지, 동영상 등)

 


2. 파일 읽기 방법

1. read()

파일 전체를 하나의 문자열로 읽음

with open("example.txt", "r", encoding="utf-8") as f:
    data = f.read()
    print(data)

2. readline()

한 줄씩 읽기 (한 번에 한 줄)

with open("example.txt", "r", encoding="utf-8") as f:
    line = f.readline()
    print(line)

3. readlines()

전체 줄을 리스트로 읽기

with open("example.txt", "r", encoding="utf-8") as f:
    lines = f.readlines()
    for line in lines:
        print(line.strip())

터미널 출력 예시 (example.txt 내용: 'Hello\nPython')

Hello
Python

3. 파일 쓰기 방법

1. write() - 텍스트 쓰기

with open("output.txt", "w", encoding="utf-8") as f:
    f.write("파이썬 파일 쓰기 예제입니다.\n")
    f.write("두 번째 줄입니다.")

2. writelines() - 리스트 여러 줄 쓰기

lines = ["첫째 줄\n", "둘째 줄\n", "셋째 줄\n"]
with open("output2.txt", "w", encoding="utf-8") as f:
    f.writelines(lines)

3. 'a' 모드로 내용 추가

with open("output.txt", "a", encoding="utf-8") as f:
    f.write("\n추가된 줄입니다.")

터미널 확인

$ cat output.txt
파이썬 파일 쓰기 예제입니다.
두 번째 줄입니다.
추가된 줄입니다.

 


4. 자주 발생하는 오류 및 해결 방법

1. FileNotFoundError

  • 존재하지 않는 파일을 'r' 모드로 열려고 할 때 발생
f = open("없는파일.txt", "r")  # 오류 발생

해결 방법

  • 파일 경로 확인 또는 try-except 사용

2. UnicodeDecodeError

  • 인코딩 방식이 맞지 않을 때 발생
with open("example.txt", "r") as f:
    data = f.read()  # 오류 가능

해결 방법

  • 인코딩을 명시적으로 지정 (encoding='utf-8')

3. close() 누락

  • 파일을 열고 닫지 않으면 메모리 누수 가능
  • 해결 방법: with open() 구문을 사용하여 자동으로 닫기

5. 추가 팁 및 참고 사항

  • 파일 경로는 절대 경로 또는 상대 경로 모두 사용 가능
  • 파일이 있는지 확인할 땐 os.path.exists()를 활용
import os
print(os.path.exists("example.txt"))  # True or False
  • 여러 줄 데이터를 쓸 때는 리스트로 구성 후 writelines() 사용하면 편리함

6. 요약 및 마무리

이번 포스팅에서는 Python에서 파일을 읽고 쓰는 기본적인 방법을 다뤘습니다. open() 함수로 파일을 열고, read(), write(), readlines() 등의 함수로 데이터를 읽거나 저장할 수 있습니다. 또한, with 구문을 통해 안전하게 파일을 다루는 습관도 중요합니다. 파일 입출력은 실무에서 자주 활용되는 기능이므로, 오류 메시지와 사용법을 정확히 익혀두는 것이 좋습니다.


7. 관련 글 링크

  • 관련 글: Python의 try, except 예외 처리 문법과 실전 예제
반응형

댓글