BadZipfile "file is not a zip file"

John Machin sjmachin at lexicon.net
Fri Jan 9 15:48:57 EST 2009


On Jan 10, 5:32 am, Scott David Daniels <Scott.Dani... at Acm.Org> wrote:
> webcomm wrote:
> > ....  I tried Scott's getzip() function yesterday... I
> > stumbled upon it in my searches.  It didn't seem to help in my case,
> > though it did produce a different error:  ValueError, substring not
> > found.  Not sure what that means.
>
> and in another message webcomm wrote:
>  > I ran the diagnostic gadget...
>  >
>  > archive size is 69888
>  > FileHeader at 0
>  > CentralDir at 43796
>  > EndArchive at 43846
>
> This is telling you that the archive ends at 43846,

Not quite. """In a "normal" uncommented archive, EndArchive_pos + 22
==
archive_size."""

> but the file
> is 69888 bytes long (69888 - 43846 = 26042 post-archive bytes).
> Have you tried calling getzip(filename, ignoreable=30000)?
> The whole point of the function is to ignore the nasty stuff at the
> end, but if _I_ had a file with more than 25K of post-archive bytes,
> I'd certainly try to figure out if the archive was mis-handled
> somewhere along the way.

Me too. Further, if I wasn't "ever diplomatic" :-), I wouldn't be
calling software (or people!) that blithely ignored 25kb of
unexplained data "forgiving" ... some other f-words, perhaps.

>  Byt the way, one reason you cannot find
> the archive by looking at the start of the file is that the zip file
> format is meant to allow you to append a zip file to another file (such
> as an executable) and treat the combination as an archive.
>
> --Scott David Daniels
> Scott.Dani... at Acm.Org




More information about the Python-list mailing list