🔥 파일 읽기와 쓰기

361자
5분

파이썬(Python)을 이용하여 파일을 다루는 것은 프로그래밍 기초를 마스터하는 데 있어 매우 중요한 부분입니다. 이번 장에서는 파일 작업의 기본, 특히 파일 읽기와 쓰기에 대해 자세히 살펴보겠습니다. 각 섹션마다 다양한 예제를 통해 이해를 돕고, 마지막에는 연습문제를 통해 학습한 내용을 실습해볼 수 있습니다.

파일 작업의 기본

파일 작업은 데이터를 영구적으로 저장하거나, 저장된 데이터를 읽어오는 과정을 말합니다. 파이썬에서는 open() 함수를 이용해 파일을 열고, read(), write() 등의 메소드로 데이터를 읽거나 쓸 수 있습니다. 파일 작업을 할 때는 파일 경로, 모드(읽기, 쓰기 등), 인코딩 등을 명시해야 합니다.

파일 열기 및 읽기

파일을 읽기 위해서는 먼저 open() 함수로 파일을 열어야 합니다. 기본 형식은 open(파일경로, 모드)입니다. 읽기 모드는 'r'로 설정합니다.

python
# 파일 읽기 예제
with open('example.txt', 'r') as file:
    content = file.read()
    print(content)
python
# 파일 읽기 예제
with open('example.txt', 'r') as file:
    content = file.read()
    print(content)

이 코드는 'example.txt' 파일을 열어 그 내용을 읽고 출력합니다. with 구문을 사용하면 파일 작업 후 자동으로 파일을 닫아줍니다.

파일 쓰기

파일에 데이터를 쓰려면 쓰기 모드인 'w'를 사용합니다. 이미 파일이 존재하면 기존 내용을 지우고 새로 작성합니다.

python
# 파일 쓰기 예제
with open('newfile.txt', 'w') as file:
    file.write("Hello, Python!")
python
# 파일 쓰기 예제
with open('newfile.txt', 'w') as file:
    file.write("Hello, Python!")

이 예제에서는 'newfile.txt'라는 새 파일을 생성하고, "Hello, Python!"이라는 문자열을 파일에 씁니다.

파일에 내용 추가하기

기존 파일에 새로운 내용을 추가하고 싶을 때는 추가 모드인 'a'를 사용합니다.

python
# 파일에 내용 추가하기
with open('example.txt', 'a') as file:
    file.write("\nNew line added.")
python
# 파일에 내용 추가하기
with open('example.txt', 'a') as file:
    file.write("\nNew line added.")

이 코드는 'example.txt' 파일의 기존 내용 끝에 새로운 줄을 추가합니다.

파일 줄 단위로 읽기

파일의 내용을 줄 단위로 읽으려면 readline() 또는 readlines() 메소드를 사용할 수 있습니다.

python
# 파일을 줄 단위로 읽기
with open('example.txt', 'r') as file:
    lines = file.readlines()
    for line in lines:
        print(line.strip())
python
# 파일을 줄 단위로 읽기
with open('example.txt', 'r') as file:
    lines = file.readlines()
    for line in lines:
        print(line.strip())

readlines()는 파일의 모든 줄을 리스트 형태로 반환합니다.

이진 파일 다루기

텍스트가 아닌 이진 파일(예: 이미지, 비디오)을 다룰 때는 이진 모드인 'b'를 사용합니다.

python
# 이진 파일 읽기
with open('image.png', 'rb') as file:
    content = file.read()
python
# 이진 파일 읽기
with open('image.png', 'rb') as file:
    content = file.read()

이 예제에서는 이진 파일인 'image.png'를 읽습니다.

연습문제

  1. 'my_diary.txt'라는 파일을 생성하고, 여러분의 일기를 작성해보세요. 이후에 파일을 다시 열어 내용을 확인해보세요.
  2. 'data.csv'라는 CSV 파일을 읽고, 각 줄의 내용을 출력하는 파이썬 스크립트를 작성하세요.
  3. 주어진 텍스트 파일에서 공백이 아닌 각 줄의 수를 세는 프로그램을 작성하세요.
  4. 이미지 파일을 열어서 파일 크기를 확인하는 프로그램을 작성하세요.
  5. 사용자로부터 입력받은 문자열을 'input.txt' 파일에 쓰고, 파일을 다시 읽어 출력하는 프로그램을 작성하세요.

YouTube 영상

채널 보기
함수형 데이터 타입 | 프로그래머를 위한 카테고리 이론
변환 파이프로 컨트롤러 코드 깔끔하게 만들기 | NestJS 가이드
매번 ValidationPipe 복붙하세요? NestJS 전역 파이프로 한 번에 해결하기 | NestJS 가이드
Product와 Coproduct가 Bifunctor인 이유 | 프로그래머를 위한 카테고리 이론
Writer 펑터와 클라이슬리 카테고리 | 프로그래머를 위한 카테고리 이론
입력을 전처리하는 Functor - Contravariant와 contramap 이해하기 | 프로그래머를 위한 카테고리 이론
Zod로 스키마 유효성 검사 구현하기 | NestJS 가이드
Pro펑터, 입력과 출력을 동시에 다루는 펑터 | 프로그래머를 위한 카테고리 이론