파이썬 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

,