[New-bugs-announce] [issue42594] Provide a way to skip magic-number search in ZipFile(mode='a')

Bart Robinson report at bugs.python.org
Mon Dec 7 17:40:05 EST 2020

New submission from Bart Robinson <bart at bartrobinson.com>:

When a ZipFile object is created with mode='a', the existing file contents are checked for the magic number b"PK\005\006" near the end of the file.  If a non-zipfile just happens to contain this magic number, it can confuse the library into assuming the file is a zipfile when it is not.  It would be great if ZipFile.__init__() provided a way to skip the magic-number check and force a new central directory to be appended to the file.

This could take the form of an additional named argument like ZipFile.__init__(force_append=True), or an additional character in the mode string, like 'a+'.  Either of these options should be backward-compatible with existing code.

Currently, my company has code that uses monkey-patching to work around the lack of this feature in the standard library.  We use mode='a' to append metadata to files in existing formats that can contain arbitrary binary data and so occasionally include the magic number.

components: Library (Lib)
messages: 382691
nosy: Bart Robinson
priority: normal
severity: normal
status: open
title: Provide a way to skip magic-number search in ZipFile(mode='a')
type: enhancement
versions: Python 3.10

Python tracker <report at bugs.python.org>

More information about the New-bugs-announce mailing list