(original) (raw)

changeset: 88901:838674d15b5b branch: 3.3 parent: 88891:412a8e2c2af6 user: Benjamin Peterson benjamin@python.org date: Sun Feb 02 15:30:22 2014 -0500 files: Lib/shutil.py description: use with statement to ensure zipfile is always closed (closes #20102) diff -r 412a8e2c2af6 -r 838674d15b5b Lib/shutil.py --- a/Lib/shutil.py Sat Feb 01 23:08:33 2014 -0500 +++ b/Lib/shutil.py Sun Feb 02 15:30:22 2014 -0500 @@ -680,17 +680,15 @@ zip_filename, base_dir) if not dry_run: - zip = zipfile.ZipFile(zip_filename, "w", - compression=zipfile.ZIP_DEFLATED) - - for dirpath, dirnames, filenames in os.walk(base_dir): - for name in filenames: - path = os.path.normpath(os.path.join(dirpath, name)) - if os.path.isfile(path): - zip.write(path, path) - if logger is not None: - logger.info("adding '%s'", path) - zip.close() + with zipfile.ZipFile(zip_filename, "w", + compression=zipfile.ZIP_DEFLATED) as zf: + for dirpath, dirnames, filenames in os.walk(base_dir): + for name in filenames: + path = os.path.normpath(os.path.join(dirpath, name)) + if os.path.isfile(path): + zf.write(path, path) + if logger is not None: + logger.info("adding '%s'", path) return zip_filename /benjamin@python.org