diff options
Diffstat (limited to 'Lib/zipfile.py')
-rw-r--r-- | Lib/zipfile.py | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/Lib/zipfile.py b/Lib/zipfile.py index 3a44d3a..ece538e 100644 --- a/Lib/zipfile.py +++ b/Lib/zipfile.py @@ -1063,13 +1063,14 @@ class ZipFile: self.filelist.append(zinfo) self.NameToInfo[zinfo.filename] = zinfo - def writestr(self, zinfo_or_arcname, bytes): + def writestr(self, zinfo_or_arcname, bytes, compress_type=None): """Write a file into the archive. The contents is the string 'bytes'. 'zinfo_or_arcname' is either a ZipInfo instance or the name of the file in the archive.""" if not isinstance(zinfo_or_arcname, ZipInfo): zinfo = ZipInfo(filename=zinfo_or_arcname, date_time=time.localtime(time.time())[:6]) + zinfo.compress_type = self.compression zinfo.external_attr = 0600 << 16 else: @@ -1079,6 +1080,9 @@ class ZipFile: raise RuntimeError( "Attempt to write to ZIP archive that was already closed") + if compress_type is not None: + zinfo.compress_type = compress_type + zinfo.file_size = len(bytes) # Uncompressed size zinfo.header_offset = self.fp.tell() # Start of header bytes self._writecheck(zinfo) |