파일 반복자에서 추가적인 개행(newline)을 제거해야 하는 점은 우아하지 않지만, 이 코드는 반드시 파일이 닫히는 것을 보장하기 때문에 안전할 뿐만 아니라 메모리에 파일마다 단 하나의 데이터 복사본만 존재하기에 전반적으로 훨씬 간결하고 표현력이 좋은 코드입니다. 추가적인 이름이 이름 공간(namespace) 안에 남아 있지만 실제로는 닫혀 있는 상태이기에 메모리를 거의 차지하지 않습니다.
>>> names <_io.TextIOWrapper name='station-names.txt' mode='r' encoding='UTF-8'> >>> next(names) Traceback (most recent call last): [...] ValueError: I/O operation on closed file.