본문으로 건너뛰기
실습하기

파일의 내용을 읽는 방법

이번 수업에서는 파이썬에서 파일을 읽는 다양한 방법을 알아보겠습니다.


파일을 읽는 여러 가지 방법

파일을 읽을 때 사용할 수 있는 대표적인 세 가지 메서드는 read(), readline(), readlines()입니다.

각 메서드는 파일의 내용을 조금씩 다르게 가져옵니다.


파일 전체를 한 번에 읽어오는 read()

이전 수업에서 간단히 소개한 read() 메서드는 파일 전체를 하나의 문자열로 읽어옵니다.

주로 파일이 비교적 작을 때, 파일의 내용을 한꺼번에 처리할 때 사용됩니다.

파일 전체 읽기
with open("input_file.txt", "r") as file:
# 파일 내용을 하나의 문자열로 읽기
content = file.read()

# 파일 내용 출력
print(content)

위 코드에서는 "input_file.txt" 파일의 전체 내용을 content라는 변수에 저장하고, 이를 출력합니다.

파일의 모든 내용은 문자열로 반환됩니다.


파일의 내용을 한 줄씩 읽어오는 readline()

readline() 메서드는 파일에서 내용을 줄바꿈 문자(\n)를 포함해 한 줄씩 읽어옵니다.

주로 큰 파일에서 각 줄의 내용을 순차적으로 처리할 때 사용합니다.

한 줄씩 읽기
# input_file.txt 내용:
# Hello!
# Welcome to
# Python

with open("input_file.txt", "r") as file:
# 첫 번째 줄을 읽고 line에 저장 (줄바꿈 문자를 포함)
line = file.readline()

# 파일의 끝에 도달할 때까지 반복
while line:
# 읽어온 한 줄을 출력 (줄바꿈 문자가 포함되어 있으므로 end=""로 추가 줄바꿈 방지)
print(line, end="")
# 다음 줄 읽기
line = file.readline()

# 출력 결과:
# Hello!
# Welcome to
# Python

위 코드 예제는 여러 줄로 구성된 텍스트 파일의 최상단부터 한 줄씩 읽어와 line 변수에 저장하고, 이를 출력합니다.

파일의 끝에 도달하면 readline은 빈 문자열''을 반환합니다.

line에 빈 문자열이 할당되면 while line:에서 while의 조건이 False로 평가되기 때문에, 파일의 끝에 도달했는지 확인할 수 있습니다.


여러 줄을 리스트로 읽어오는 readlines()

readlines() 메서드는 파일의 모든 줄을 읽어와 리스트로 반환합니다.

각 줄이 리스트의 요소로 저장되므로, 이후에 각 줄을 개별적으로 처리하기에 편리합니다.

여러 줄을 리스트로 읽기
# input_file.txt 내용:
# Hello!
# Welcome to
# Python

with open("input_file.txt", "r") as file:
# lines의 값: ['Hello!\n', 'Welcome to\n', 'Python\n']
lines = file.readlines()

# 리스트의 각 요소를 반복하며 출력
for line in lines:
# 각 줄을 출력 (줄바꿈 문자가 포함되어 있으므로 end=""로 추가 줄바꿈 방지)
print(line, end="")

readlines()는 파일의 각 줄을 리스트의 요소로 저장합니다.

이후 리스트의 각 요소를 반복문으로 출력하면, 파일의 모든 내용을 한 번에 출력할 수 있습니다.

다음 내용이 궁금하다면?

코드프렌즈 PLUS 멤버십 가입 or 강의를 등록해 주세요!