From: Benjamin Peterson Date: Thu, 19 Mar 2009 03:04:31 +0000 (+0000) Subject: close files after comparing them X-Git-Tag: v2.7a1~1837 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=fcfa7ead4f66be4363f4e8a2e866c89d872eee22;p=python close files after comparing them --- diff --git a/Lib/filecmp.py b/Lib/filecmp.py index 0b7ce16dfe..a2266d8d42 100644 --- a/Lib/filecmp.py +++ b/Lib/filecmp.py @@ -11,6 +11,7 @@ Functions: import os import stat +import contextlib from itertools import ifilter, ifilterfalse, imap, izip __all__ = ["cmp","dircmp","cmpfiles"] @@ -62,15 +63,14 @@ def _sig(st): def _do_cmp(f1, f2): bufsize = BUFSIZE - fp1 = open(f1, 'rb') - fp2 = open(f2, 'rb') - while True: - b1 = fp1.read(bufsize) - b2 = fp2.read(bufsize) - if b1 != b2: - return False - if not b1: - return True + with contextlib.nested(open(f1, 'rb'), open(f2, 'rb')) as (fp1, fp2): + while True: + b1 = fp1.read(bufsize) + b2 = fp2.read(bufsize) + if b1 != b2: + return False + if not b1: + return True # Directory comparison class. #