🔥 파일 읽기와 쓰기

361자
5분

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

파일 작업의 기본

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

파일 열기 및 읽기

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

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

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

파일 쓰기

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

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

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

파일에 내용 추가하기

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

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

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

파일 줄 단위로 읽기

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

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

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

이진 파일 다루기

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

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

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

연습문제

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