diff options
Diffstat (limited to 'Lib/tarfile.py')
| -rw-r--r-- | Lib/tarfile.py | 24 | 
1 files changed, 11 insertions, 13 deletions
| diff --git a/Lib/tarfile.py b/Lib/tarfile.py index 7b9f407dd4..11b4b68146 100644 --- a/Lib/tarfile.py +++ b/Lib/tarfile.py @@ -1924,9 +1924,8 @@ class TarFile(object):          # Append the tar header and data to the archive.          if tarinfo.isreg(): -            f = bltn_open(name, "rb") -            self.addfile(tarinfo, f) -            f.close() +            with bltn_open(name, "rb") as f: +                self.addfile(tarinfo, f)          elif tarinfo.isdir():              self.addfile(tarinfo) @@ -2131,16 +2130,15 @@ class TarFile(object):          """          source = self.fileobj          source.seek(tarinfo.offset_data) -        target = bltn_open(targetpath, "wb") -        if tarinfo.sparse is not None: -            for offset, size in tarinfo.sparse: -                target.seek(offset) -                copyfileobj(source, target, size) -        else: -            copyfileobj(source, target, tarinfo.size) -        target.seek(tarinfo.size) -        target.truncate() -        target.close() +        with bltn_open(targetpath, "wb") as target: +            if tarinfo.sparse is not None: +                for offset, size in tarinfo.sparse: +                    target.seek(offset) +                    copyfileobj(source, target, size) +            else: +                copyfileobj(source, target, tarinfo.size) +            target.seek(tarinfo.size) +            target.truncate()      def makeunknown(self, tarinfo, targetpath):          """Make a file from a TarInfo object with an unknown type | 
