Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.python > #10333
| 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) |
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 | Next — Previous in thread | Next in thread | Find similar | Unroll 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