Merged revisions 70521 via svnmerge from

svn+ssh://pythondev@svn.python.org/python/trunk

........
  r70521 | benjamin.peterson | 2009-03-22 12:45:11 -0500 (Sun, 22 Mar 2009) | 1 line

  close the file even if an exception occurs #5536
........
This commit is contained in:
Benjamin Peterson 2009-03-22 17:49:21 +00:00
parent 218f462a0f
commit 373498fc67
2 changed files with 42 additions and 35 deletions

View File

@ -233,6 +233,7 @@ class URLopener:
except IOError, msg:
pass
fp = self.open(url, data)
try:
headers = fp.info()
if filename:
tfp = open(filename, 'wb')
@ -246,6 +247,7 @@ class URLopener:
(fd, filename) = tempfile.mkstemp(suffix)
self.__tempfiles.append(filename)
tfp = os.fdopen(fd, 'wb')
try:
result = filename, headers
if self.tempcache is not None:
self.tempcache[url] = result
@ -266,8 +268,10 @@ class URLopener:
blocknum += 1
if reporthook:
reporthook(blocknum, bs, size)
fp.close()
finally:
tfp.close()
finally:
fp.close()
del fp
del tfp

View File

@ -92,6 +92,9 @@ Core and Builtins
Library
-------
- Issue #5536: urllib.urlretrieve makes sure to close the file it's writing to
even if an exception occurs.
- Fix Decimal.__format__ bug that swapped the meanings of the '<' and
'>' alignment characters.