7. Python Programming Course : Working with Files

Chapter 7. Python에서 파일 다루기


왜 파일 작업이 중요한가요?

Python을 배운다는 건 단순히 숫자 계산이나 화면에 출력하는 걸 넘어서 외부 세계와 데이터를 주고받는 것까지 포함합니다.
파일을 다룰 줄 알아야 다음과 같은 작업이 가능합니다:

  • 텍스트 데이터 저장 및 불러오기 (메모장처럼)

  • 로그 파일 자동 생성

  • 웹 크롤링 후 결과 저장

  • CSV 파일을 통해 엑셀과 연동

  • 이미지, 바이너리 파일 저장 등


7.1 파일 열고 닫기 (Opening and Closing Files)

기본 구조

file = open("example.txt", "r") # 읽기 모드로 파일 열기 # 파일 읽기, 쓰기 등 작업 file.close() # 파일 닫기

설명:

  • open() 함수로 파일을 엽니다.

  • "r"읽기(read) 모드를 의미합니다.

  • close()는 열었던 파일을 닫습니다. 안 닫으면 컴퓨터 자원을 계속 점유하게 되어 데이터 유실 또는 충돌 가능성이 있습니다.
    실생활 예시:

누군가의 다이어리를 펼쳤으면, 다 쓰고는 꼭 닫아줘야 하는 것과 같습니다.


더 안전한 방법: with 구문

with open("example.txt", "r") as file: content = file.read() print(content)

설명:

  • with를 사용하면 파일이 자동으로 닫히기 때문에 실수 방지에 좋습니다.

  • 중간에 에러가 나도 close()가 호출되어 리스크를 줄여줍니다.

TIP:

초보자일수록 무조건 with open(...)을 사용하는 걸 추천합니다.


7.2 파일 읽기 / 쓰기

파일 읽기

with open("example.txt", "r") as file: print(file.read())

읽기 방법 3가지

file.read() # 전체 파일을 문자열로 읽음 file.readline() # 한 줄만 읽음 (커서 기준) file.readlines() # 모든 줄을 리스트로 읽음

예시 상황:

  • 소설책처럼 처음부터 끝까지 읽고 싶다면 read()

  • 로그파일처럼 한 줄씩 분석하고 싶다면 readline() 또는 readlines() 사용!


파일 쓰기

with open("output.txt", "w") as file: file.write("Hello, File World!\n") file.write("두 번째 줄입니다.")

설명:

  • "w"쓰기 모드(write) 입니다.

  • 주의할 점: 해당 파일이 이미 존재하면 기존 내용은 모두 지워지고 새로 씁니다.


이어쓰기 (append)

with open("output.txt", "a") as file: file.write("\n새로운 줄 추가!")

설명:

  • "a"기존 파일에 이어서 내용을 붙여 쓰는 모드

  • 이전 데이터는 그대로 두고, 새 내용을 아래에 추가합니다.

예시 상황:

  • 프로그램이 동작하면서 로그(log) 를 남겨야 할 때 아주 유용!


7.3 파일 모드 정리 (File Modes)

모드설명
"r"읽기 전용. 파일이 없으면 에러 발생
"w"쓰기 전용. 기존 내용 모두 삭제
"a"이어쓰기 전용. 파일 없으면 새로 생성
"x"새 파일만 생성. 파일이 이미 있으면 에러
"b"바이너리 모드 (이미지, 동영상 등)
"+"읽기/쓰기 둘 다 가능

조합 예시:

  • "rb": 바이너리 읽기 (예: 이미지 파일 열기)

  • "w+": 읽기 + 쓰기 (내용 덮어쓰기)

  • "a+": 이어쓰기 + 읽기 가능


7.4 예외 처리 (파일 오류에 대처하는 법)

파일 작업은 항상 외부 환경이 관여하므로, 예외 처리가 꼭 필요합니다.


예: 파일이 없을 때

try: with open("notfound.txt", "r") as file: content = file.read() except FileNotFoundError: print("파일이 존재하지 않습니다.")
  • FileNotFoundError: 지정한 파일이 존재하지 않을 때 발생하는 에러


예: 권한이 없을 때

try: with open("readonly.txt", "w") as file: file.write("쓰기 테스트") except FileNotFoundError: print("파일 없음") except PermissionError: print("파일 쓰기 권한이 없습니다.")
  • PermissionError: 쓰기 권한이 없거나 읽기 전용 파일일 때 발생

정리하며: 꼭 기억할 3가지

  1. with open()을 습관화하세요. (자동 닫힘 + 안전)

  2. 쓰기 모드 주의: "w"는 기존 내용을 지웁니다.

  3. 예외 처리는 반드시 포함하세요. 파일 작업은 항상 오류 가능성이 있습니다.

실습 과제 추천

  • memo.txt 파일을 만들어 메모장을 직접 만들어 보기

  • 숫자 파일을 저장하고 다시 불러와서 평균 계산하기

  • 존재하지 않는 파일을 열어보고 예외 처리 연습하기

댓글

  1. 작성자가 댓글을 삭제했습니다.

    답글삭제
  2. with 없이 파일을 open할 때에 이점이 있나요?

    답글삭제
  3. 바이너리모드로 파일을 읽는 방법은 있지만 추가하는 방법이 궁금하고 권한을 설정하는 방법을 알고 싶습니다.

    답글삭제

댓글 쓰기

이 블로그의 인기 게시물

Python 올인원 강좌: 기초부터 실전 프로젝트까지 완벽 정리!

4. Python Programming Course : Data Structures