Message382691
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. |
|
Date |
User |
Action |
Args |
2020-12-07 22:40:05 | Bart Robinson | set | recipients:
+ Bart Robinson |
2020-12-07 22:40:05 | Bart Robinson | set | messageid: <1607380805.75.0.407394534884.issue42594@roundup.psfhosted.org> |
2020-12-07 22:40:05 | Bart Robinson | link | issue42594 messages |
2020-12-07 22:40:05 | Bart Robinson | create | |
|