검색
회원가입로그인

제13장: 파일 다루기

Chapter 13: 파일 다루기의 기초 – 파이썬 파일 입출력

프로그램이 컴퓨터와 실질적으로 소통하는 순간은 파일을 읽거나 쓰는 순간입니다. 데이터를 메모리에 잠깐 저장하는 것을 넘어, 파일에 보관하면 언제든 다시 꺼내 쓸 수 있죠. 이 장에서는 파이썬이 어떻게 파일과 대화하는지, 그 핵심 원리를 차근차근 살펴봅니다.

파일 열기와 닫기: 첫걸음

파이썬은 open() 함수를 통해 파일문을 엽니다. 파일 이름(경로)과 어떻게 다룰지 정하는 모드(읽기, 쓰기 등)를 함께 알려주면 됩니다. 파일을 읽고 쓸 때마다 꼭 닫아 주는 것이 좋은 습관입니다. 직접 닫지 않아도, with 구문을 쓰면 자동 정리가 가능합니다.

data_file = open('data.txt', 'r')  # 읽기 모드로 파일 열기
# ...파일 작업...
data_file.close()

혹은 이렇게 더 안전하게 활용할 수도 있습니다:

with open('data.txt', 'w') as f:
    f.write('파이썬 파일 입출력 연습')
# with 블록을 빠져나가면 파일이 자동으로 닫힘

다양한 파일모드: 읽기, 쓰기, 추가하기

open() 함수의 두 번째 인자는 그 파일을 어떻게 다룰지 결정합니다.

  • 'r': 읽기 모드(파일이 있어야 함)

  • 'w': 쓰기 모드(기존 내용은 삭제, 없으면 새로 만듦)

  • 'a': 이어쓰기 모드(기존 끝에 추가)

  • 'b': 바이너리 모드(이미지 등 비텍스트 파일용)

파일에 데이터 써 보기

파일에 글을 남길 때는 write()를 사용합니다.

with open('hello.txt', 'w', encoding='utf-8') as f:
    f.write('안녕하세요!\n')
    f.write('파일에 텍스트를 남깁니다.')

문장이 끝날 때마다 줄바꿈 \n을 꼭 넣어주어야 실제로 다음 줄로 내려갑니다.

파일에서 데이터 읽기

파일 내용을 읽어오는 방법은 여러 가지입니다. 전체를 한 번에 읽으려면 read(), 한 줄씩 읽으려면 readline(), 모든 줄을 리스트로 만들고 싶다면 readlines()를 씁니다.

with open('hello.txt', 'r', encoding='utf-8') as f:
    all_text = f.read()
    print(all_text)
with open('hello.txt', 'r', encoding='utf-8') as f:
    for line in f:  # 파일 객체 자체가 반복 가능
        print(line.strip())  # 줄바꿈 문자 제거

실습: 원하는 단어 찾기

텍스트 파일에서 특정 단어가 들어있는 줄을 찾아볼 수도 있습니다. 다음은 실전 예시입니다.

with open('hello.txt', 'r', encoding='utf-8') as f:
    for num, line in enumerate(f, 1):
        if '파이썬' in line:
            print(f"{num}줄: {line.strip()}")

파일 작업 시 주의할 점

경로를 잘못 적으면 파일을 못 찾거나 예상치 못한 위치에 파일이 생성될 수 있습니다. 한글이나 특수문자가 있는 파일의 경우, 인코딩을 utf-8로 명시하는 것도 잊지 마세요. 만일 파일이 없는 경우나 권한이 없는 상황 등에서는 오류가 생길 수 있으니, try-except로 미리 대비해두면 프로그램이 멈추지 않게 설계할 수 있습니다.


파이썬 파일 입출력은 실제 프로젝트에서 반드시 쓰이는 필수 능력입니다. 읽기, 쓰기, 다양한 모드와 에러 처리까지 하나씩 익히면서 자신만의 데이터 저장 세계를 넓혀보세요.

공유하기
카카오로 공유하기
페이스북 공유하기
트위터로 공유하기
url 복사하기
조회수 : 17
heart