This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author Bart Robinson
Recipients Bart Robinson
Date 2020-12-07.22:40:05
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1607380805.75.0.407394534884.issue42594@roundup.psfhosted.org>
In-reply-to
Content
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.
History
Date User Action Args
2020-12-07 22:40:05Bart Robinsonsetrecipients: + Bart Robinson
2020-12-07 22:40:05Bart Robinsonsetmessageid: <1607380805.75.0.407394534884.issue42594@roundup.psfhosted.org>
2020-12-07 22:40:05Bart Robinsonlinkissue42594 messages
2020-12-07 22:40:05Bart Robinsoncreate