본문 바로가기
파이썬

파이썬에서 대용량 텍스트 파일을 메모리에로드하지 않고 한 줄씩 읽을 수 있습니까?

by º기록 2020. 9. 30.
반응형

큰 파일을 한 줄씩 읽어야합니다. 파일이 5GB 이상이고 각 줄을 읽어야하지만 메모리에 매우 큰 목록을 생성하기 때문에 분명히 readlines () 를 사용하고 싶지 않습니다.

이 경우 아래 코드는 어떻게 작동합니까? xreadlines 자체가 메모리에 하나씩 읽어들이나요? 생성기 표현식이 필요합니까?

f = (line for line in open("log.txt").xreadlines())  # how much is loaded in memory?

f.next()  

또한 Linux tail 명령처럼 이것을 역순으로 읽으려면 어떻게해야합니까?

나는 발견했다 :



둘 다 아주 잘 작동했습니다!

 

해결 방법

 

Keith는 간결하지만 파일을 명시 적으로 닫지 않기 때문에이 답변을 제공했습니다.

with open("log.txt") as infile:
    for line in infile:
        do_something_with(line)

 

참조 페이지 https://stackoverflow.com/questions/6475328

 

 

반응형

댓글