반응형
큰 파일을 한 줄씩 읽어야합니다. 파일이 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
반응형
'파이썬' 카테고리의 다른 글
파이썬 Windows에서 Python이 설치된 위치를 어떻게 찾을 수 있습니까? (0) | 2020.09.30 |
---|---|
파이썬 변수가 앞에 오는 Python for-in 루프 (0) | 2020.09.30 |
파이썬의 원시 문자열 리터럴이 단일 백 슬래시로 끝날 수없는 이유는 무엇입니까? (0) | 2020.09.30 |
파이썬 문자열 대신 바이트로 작동하는 StringIO 대체? (0) | 2020.09.30 |
파이썬 장고 SUM 쿼리? (0) | 2020.09.30 |
댓글