파이썬 2.5부터 파일 객체는 __enter__ 와__exit__ 메서드를 가지고 있다. 이전에는 파일 객체를 열 때 다음처럼 했다면:
>>> f = open("x.txt")
>>> f
<open file 'x.txt', mode 'r' at 0x00AE82F0>
>>> f.__enter__()
<open file 'x.txt', mode 'r' at 0x00AE82F0>
>>> f.read(1)
'X'
>>> f.__exit__(None, None, None)
>>> f.read(1)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: I/O operation on closed file
이제는 파일을 열 때 close할 걱정 없이, 간단히
with open("x.txt") as f:
data = f.read()
do something with data
참 쉽죠? J