Python으로 텍스트 파일을 다룰 때, 파일 전체를 한 번에 읽거나 줄 단위로 읽어 리스트에 저장하는 방법을 알아두면 매우 유용합니다. 이 글에서는 가장 기본적인 파일 읽기 방법부터 실무에서 권장되는 방식까지 소개합니다.
1. 파일 전체를 한 번에 읽기
가장 기본적인 방법은 open() 함수로 파일을 연 뒤, read() 메서드를 사용해 파일의 모든 내용을 하나의 문자열로 가져오는 것입니다.
f = open('my_file.txt', 'r+')
my_file_data = f.read()
f.close()위 코드는 'my_file.txt' 파일을 읽기 모드로 열고, 파일의 전체 내용을 my_file_data 변수에 저장한 후 파일을 닫습니다. read() 함수는 파일 전체를 한 번에 읽어들이기 때문에, 파일 크기가 작은 경우에 적합합니다.
2. 파일을 줄 단위로 읽어 리스트에 저장하기
파일의 내용을 줄(line) 단위로 나누어 리스트에 저장하려면 readlines() 메서드와 리스트 컴프리헨션(list comprehension)을 함께 사용하면 됩니다.
f = open('my_file.txt', 'r+')
lines = [line for line in f.readlines()]
f.close()이 코드는 파일의 각 줄을 하나의 요소로 하는 리스트를 생성합니다. 각 줄 끝에는 개행 문자(\n)가 포함되어 있으므로, 필요하다면 strip() 메서드로 제거할 수 있습니다.
lines = [line.strip() for line in f.readlines()]
3. with 문을 활용한 안전한 파일 처리 (권장)
실무에서는 with 문을 사용하는 것이 좋습니다. with 문을 사용하면 코드 블록이 끝날 때 파일이 자동으로 닫히므로, f.close()를 잊어버리는 실수를 방지할 수 있습니다.
# 파일 전체 읽기
with open('my_file.txt', 'r') as f:
my_file_data = f.read()
# 줄 단위로 리스트에 저장
with open('my_file.txt', 'r') as f:
lines = f.readlines()
# 개행 문자 제거와 함께 저장
with open('my_file.txt', 'r') as f:
lines = [line.strip() for line in f]정리
- read(): 파일 전체를 하나의 문자열로 읽음
- readlines(): 파일을 줄 단위로 읽어 리스트로 반환
- with 문: 파일 자동 종료로 안전한 리소스 관리 가능
간단한 스크립트에서는 기본적인 open()과 close() 조합도 충분하지만, 예외 상황이나 대용량 파일을 다룰 때는 with 문을 사용하는 것이 훨씬 안정적입니다.