Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Python에서 파일을 한 줄씩 읽는 방법: readlines() 완벽 가이드

Python에서 파일을 다룰 때 read() 함수는 파일 전체를 한 번에 모두 읽어옵니다. 반면 readlines() 함수를 사용하면 파일의 내용을 줄 단위로 나누어 처리할 수 있어 대용량 텍스트 파일이나 로그 파일을 다룰 때 특히 유용합니다.

readlines() 기본 사용법

readlines()는 파일의 각 줄을 요소로 갖는 리스트를 반환합니다. 이를 반복문과 함께 사용하면 파일을 한 줄씩 순회하며 처리할 수 있습니다.

f = open('my_file.txt', 'r+')
for line in f.readlines():
    print(line)
f.close()

위 예제에서 f.readlines()가 반환한 리스트를 for 반복문으로 순회하면서 각 줄을 출력합니다. 작업이 끝난 후에는 반드시 close() 메서드를 호출하여 파일을 닫아야 리소스 누수를 방지할 수 있습니다.

with 문을 활용한 안전한 파일 읽기

Python에서는 with...open 구문을 사용하는 것이 더 권장되는 방식입니다. 이 방법을 사용하면 코드 블록이 종료될 때 파일이 자동으로 닫히므로 close() 호출을 잊을 걱정이 없습니다.

with open('my_file.txt', 'r+') as f:
    for line in f.readlines():
        print(line)

추가 팁: 불필요한 개행 문자 제거하기

readlines()로 읽은 각 줄에는 끝에 개행 문자(\n)가 포함되어 있습니다. 이를 제거하려면 strip() 메서드를 함께 사용하면 됩니다.

with open('my_file.txt', 'r') as f:
    for line in f.readlines():
        print(line.strip())

또한 파일 객체 자체가 반복 가능(iterable)하기 때문에 readlines() 없이도 아래와 같이 직접 순회할 수 있으며, 이 방식은 메모리 효율 면에서 더 유리합니다.

with open('my_file.txt', 'r') as f:
    for line in f:
        print(line.strip())

파일 크기가 매우 큰 경우에는 readlines()가 모든 줄을 한 번에 메모리에 올리므로 주의가 필요하며, 위와 같이 파일 객체를 직접 순회하거나 readline()을 사용하는 것이 좋습니다.