Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.python > #10333

Re: reading zipfile; problem using raw buffer

From Peter Otten <__peter__@web.de>
Subject Re: reading zipfile; problem using raw buffer
Date 2011-07-26 15:04 +0200
Organization None
References <acaab166-32c1-43df-b1a4-e3b47c62be36@m10g2000yqd.googlegroups.com> <08098816-0332-4ae2-a125-35418bac0da2@dp9g2000vbb.googlegroups.com> <ab8b6e1f-f850-446b-aa34-47997974825d@d7g2000vbv.googlegroups.com> <FF33FE3F6BACC544A34043593DB53BA20A033CCC@acesxch03.ADVENTISTCORP.NET>
Newsgroups comp.lang.python
Message-ID <mailman.1494.1311685503.1164.python-list@python.org> (permalink)

Show all headers | View raw


Sells, Fred wrote:

> I'm tring to unzip a buffer that is uploaded to django/python.  I can
> unzip the file in batch mode just fine, but when I get the buffer I get
> a "BadZipfile exception.  I wrote this snippet to try to isolate the
> issue but I don't understand what's going on.  I'm guessing that I'm
> losing some header/trailer somewhere?

Why are you copying the file before you try to unzip it?

> def unittestZipfile(filename):
>     buffer = ''
>     f = open(filename)

Open the file in binary mode:

      f = open(filename, "rb")

>     for i in range(22):
>         block = f.read()
>         if len(block) == 0:
>             break
>         else:
>             buffer += block
>     print len(buffer)
>     tmp = open('tmp.zip', 'w')

Again, open the file in binary mode ("wb").

>     tmp.write(buffer)
>     tmp.close()

Not essential to the problem you are encountering, but you want 
shutil.copyfile(). Also, have a look at the shutil.copyfileobj() 
implementation to learn how to properly copy a file in chunks of limited 
size.

>     zf = zipfile.ZipFile('tmp.zip')
>     print dir(zf)
>     for name in zf.namelist():
>         print name
>         print zf.read(name)
> ____________________________________________________________
> 2.6.6 (r266:84297, Aug 24 2010, 18:46:32) [MSC v.1500 32 bit (Intel)]
> Traceback (most recent call last):
>   File
> "C:\all\projects\AccMDS30Server\mds30\app\uploaders\xmitzipfile.py",
> line 162, in <module>
>     unittestZipfile('wk1live7.8to7.11.zip')
>   File
> "C:\all\projects\AccMDS30Server\mds30\app\uploaders\xmitzipfile.py",
> line 146, in unittestZipfile
>     print zf.read(name)
>   File "C:\alltools\python26\lib\zipfile.py", line 837, in read
>     return self.open(name, "r", pwd).read()
>   File "C:\alltools\python26\lib\zipfile.py", line 867, in open
>     raise BadZipfile, "Bad magic number for file header"
> zipfile.BadZipfile: Bad magic number for file header

Back to comp.lang.python | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

Pipe in the "return" statement Archard Lias <archardlias@googlemail.com> - 2011-07-25 05:00 -0700
  Re: Pipe in the "return" statement Ian Collins <ian-news@hotmail.com> - 2011-07-26 00:03 +1200
    Re: Pipe in the "return" statement Archard Lias <archardlias@googlemail.com> - 2011-07-25 07:16 -0700
      Re: Pipe in the "return" statement Billy Mays <81282ed9a88799d21e77957df2d84bd6514d9af6@myhashismyemail.com> - 2011-07-25 10:31 -0400
        Re: Pipe in the "return" statement Ethan Furman <ethan@stoneleaf.us> - 2011-07-25 13:07 -0700
          Re: Pipe in the "return" statement Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2011-07-28 08:26 +0200
      Re: Pipe in the "return" statement Oliver Bestwalter <oliver@bestwalter.de> - 2011-07-25 16:35 +0200
        Re: Pipe in the "return" statement Archard Lias <archardlias@googlemail.com> - 2011-07-25 08:05 -0700
      Re: Pipe in the "return" statement John Gordon <gordon@panix.com> - 2011-07-25 14:39 +0000
        Re: Pipe in the "return" statement Archard Lias <archardlias@googlemail.com> - 2011-07-25 08:06 -0700
      Re: Pipe in the "return" statement gwowen <gwowen@gmail.com> - 2011-07-25 07:42 -0700
  Re: Pipe in the "return" statement Christian Heimes <lists@cheimes.de> - 2011-07-25 14:33 +0200
    Re: Pipe in the "return" statement Archard Lias <archardlias@googlemail.com> - 2011-07-25 08:28 -0700
      Re: Pipe in the "return" statement Christian Heimes <lists@cheimes.de> - 2011-07-25 18:11 +0200
        Re: Pipe in the "return" statement Archard Lias <archardlias@googlemail.com> - 2011-07-25 09:30 -0700
  Re: Pipe in the "return" statement TonyO <guinness.tony@gmail.com> - 2011-07-25 05:52 -0700
    Re: Pipe in the "return" statement gwowen <gwowen@gmail.com> - 2011-07-25 06:00 -0700
    Re: Pipe in the "return" statement red floyd <redfloyd@gmail.com> - 2011-07-25 14:04 -0700
      reading  zipfile; problem using raw buffer "Sells, Fred" <fred.sells@adventistcare.org> - 2011-07-26 08:42 -0400
        Re: reading  zipfile; problem using raw buffer Billy Mays <81282ed9a88799d21e77957df2d84bd6514d9af6@myhashismyemail.com> - 2011-07-26 08:49 -0400
      Re: reading  zipfile; problem using raw buffer Peter Otten <__peter__@web.de> - 2011-07-26 15:04 +0200
      RE: reading  zipfile; problem using raw buffer "Sells, Fred" <fred.sells@adventistcare.org> - 2011-07-26 11:22 -0400

csiph-web