텍스트 파일은 단순한 문자열로 구성된 파일을 의미합니다. Python은 텍스트 파일을 생성하고, 읽고, 쓸 수 있는 내장 함수를 기본적으로 제공합니다. 이 글에서는 Python에서 텍스트 파일을 읽는 다양한 방법에 대해 자세히 알아보겠습니다.
Python에서 텍스트 파일을 읽는 3가지 방법
Python에서 텍스트 파일을 읽는 대표적인 세 가지 메서드는 다음과 같습니다.
- read() — 파일 전체를 한 번에 읽어 들여 모든 내용이 담긴 하나의 문자열을 반환합니다.
- readline() — 파일에서 한 줄씩만 읽어 문자열 형태로 반환합니다.
- readlines() — 파일의 모든 줄을 읽어 각 줄을 요소로 갖는 문자열 리스트를 반환합니다.
파일 열기와 읽기
예시를 위해 'myfile.txt'라는 이름의 텍스트 파일이 있다고 가정해 보겠습니다. 파일을 읽으려면 먼저 읽기 모드(read mode)로 파일을 열어야 하며, 이 모드는 'r'로 지정합니다.
파일은 open() 함수를 사용하여 열 수 있으며, 두 개의 매개변수를 전달합니다. 첫 번째는 파일 이름(경로), 두 번째는 파일을 여는 모드입니다.
코드 예제
file = open("myfile.txt", "r")
print("read 함수:")
print(file.read())
print()
# read() 호출 후 커서가 파일 끝으로 이동했으므로
# seek(0)으로 커서를 다시 파일 처음으로 되돌립니다.
file.seek(0)
print("readline 함수:")
print(file.readline())
print()
file.seek(0) # 커서를 다시 파일 처음으로 이동
print("readlines 함수:")
print(file.readlines())
file.close()실행 결과
read 함수: This is an article on reading text files in Python. Python has inbuilt functions to read a text file. We can read files in three different ways. Create a text file which you will read later. readline 함수: This is an article on reading text files in Python. readlines 함수: ['This is an article on reading text files in Python.\n', 'Python has\ninbuilt functions to read a text file.\n', 'We can read files in three\ndifferent ways.\n', 'Create a text file which you will read later.']
실행 결과 분석
위 출력 결과를 통해 각 메서드의 동작 방식을 명확하게 확인할 수 있습니다.
- read() — 파일 전체를 읽어 하나의 문자열로 반환합니다.
- readline() — 오직 한 줄만 읽어 반환합니다.
- readlines() — 모든 줄을 읽어 문자열 리스트 형태로 반환합니다.
추가 팁: with 문 활용하기
파일 작업이 끝난 후 반드시 close()를 호출해야 하지만, 실수로 누락하는 경우가 많습니다. 이를 방지하려면 with 문을 사용하는 것이 좋습니다. with 블록이 종료되면 파일이 자동으로 닫히므로 더 안전하고 깔끔한 코드를 작성할 수 있습니다.
with open("myfile.txt", "r", encoding="utf-8") as file:
content = file.read()
print(content)또한 한글 등 비영어권 문자가 포함된 파일을 다룰 때는 encoding="utf-8" 옵션을 지정하면 인코딩 오류를 예방할 수 있습니다.