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


Groups > comp.lang.python > #43923 > unrolled thread

unzipping a zipx file

Started by"b_erickson1" <brian@dashley.net>
First post2013-04-19 17:59 +0000
Last post2013-04-19 21:50 -0400
Articles 5 — 4 participants

Back to article view | Back to comp.lang.python


Contents

  unzipping a zipx file "b_erickson1" <brian@dashley.net> - 2013-04-19 17:59 +0000
    Re: unzipping a zipx file John Gordon <gordon@panix.com> - 2013-04-19 18:33 +0000
      Re: unzipping a zipx file John Gordon <gordon@panix.com> - 2013-04-19 18:56 +0000
    Re: unzipping a zipx file Steven D'Aprano <steve+comp.lang.python@pearwood.info> - 2013-04-20 00:24 +0000
      Re: unzipping a zipx file Dave Angel <davea@davea.name> - 2013-04-19 21:50 -0400

#43923 — unzipping a zipx file

From"b_erickson1" <brian@dashley.net>
Date2013-04-19 17:59 +0000
Subjectunzipping a zipx file
Message-ID<mailman.834.1366394500.3114.python-list@python.org>
I have python 2.6.2 and I trying to get it to unzip a file made with winzip pro.  The file extension is zipx.  This is on a windows machine where I have to send them all that files necessary to run.  I am packaging this with py2exe.  I can open the file with 
zFile = zipfile.ZipFile(fullPathName,'r')
and I can look through all the file in the archive 
for filename in zFile.namelist():
but when I write the file out with this code:
            ozFile = open(filename,'w')
            ozFile.write(zFile.read(filename))
            ozFile.close()
that file still looks encrypted.  No errors are thrown.  The file is just a text file not a jpeg or anything else.  I can open the file with 7zip and extract the text file out just fine.  


What am I missing?

Thanks 

[toc] | [next] | [standalone]


#43927

FromJohn Gordon <gordon@panix.com>
Date2013-04-19 18:33 +0000
Message-ID<kks2mi$54d$1@reader1.panix.com>
In reply to#43923
In <mailman.834.1366394500.3114.python-list@python.org> "b_erickson1" <brian@dashley.net> writes:

>             ozFile = open(filename,'w')
>             ozFile.write(zFile.read(filename))
>             ozFile.close()

Perhaps you want to use zFile.extract() instead of zFile.read()?

-- 
John Gordon                   A is for Amy, who fell down the stairs
gordon@panix.com              B is for Basil, assaulted by bears
                                -- Edward Gorey, "The Gashlycrumb Tinies"

[toc] | [prev] | [next] | [standalone]


#43929

FromJohn Gordon <gordon@panix.com>
Date2013-04-19 18:56 +0000
Message-ID<kks40c$828$1@reader1.panix.com>
In reply to#43927
In <kks2mi$54d$1@reader1.panix.com> John Gordon <gordon@panix.com> writes:

> In <mailman.834.1366394500.3114.python-list@python.org> "b_erickson1" <brian@dashley.net> writes:

> >             ozFile = open(filename,'w')
> >             ozFile.write(zFile.read(filename))
> >             ozFile.close()

> Perhaps you want to use zFile.extract() instead of zFile.read()?

No, that's not it.  Your code should work.

You said the output file 'looks encrypted'.  Is the source zip file
encrypted?

Is the source text file something other than plain ASCII?

-- 
John Gordon                   A is for Amy, who fell down the stairs
gordon@panix.com              B is for Basil, assaulted by bears
                                -- Edward Gorey, "The Gashlycrumb Tinies"

[toc] | [prev] | [next] | [standalone]


#43944

FromSteven D'Aprano <steve+comp.lang.python@pearwood.info>
Date2013-04-20 00:24 +0000
Message-ID<5171e036$0$29977$c3e8da3$5496439d@news.astraweb.com>
In reply to#43923
On Fri, 19 Apr 2013 17:59:26 +0000, b_erickson1 wrote:

> I have python 2.6.2 and I trying to get it to unzip a file made with
> winzip pro.  The file extension is zipx.  This is on a windows machine
> where I have to send them all that files necessary to run.  I am
> packaging this with py2exe.  I can open the file with zFile =
> zipfile.ZipFile(fullPathName,'r') and I can look through all the file in
> the archive for filename in zFile.namelist():
> but when I write the file out with this code:
>             ozFile = open(filename,'w')
>             ozFile.write(zFile.read(filename))
>             ozFile.close()
> that file still looks encrypted.  No errors are thrown.  The file is
> just a text file not a jpeg or anything else.  I can open the file with
> 7zip and extract the text file out just fine.
> 
> 
> What am I missing?


You are missing that zipx is not the same as zip, and Python very likely 
does not support the zipx compression algorithm.

http://kb.winzip.com/kb/entry/7/

My guess is that the zipx header is similar enough to zip that Python can 
retrieve the file names, but it cannot decompress the files. 
Unfortunately, instead of getting a nice error, it is fooled into 
thinking that it decompressed when in fact you just got junk.


I suggest that you start with a simple example: create a plain text file 
with just a few words. Compress this single file to .zipx, then try to 
decompress it using Python. If it still fails, you will have a simple 
example that you could post here and see if others have more success.



-- 
Steven

[toc] | [prev] | [next] | [standalone]


#43945

FromDave Angel <davea@davea.name>
Date2013-04-19 21:50 -0400
Message-ID<mailman.845.1366422671.3114.python-list@python.org>
In reply to#43944
On 04/19/2013 08:24 PM, Steven D'Aprano wrote:
>
>
     <SNIP>
>
> You are missing that zipx is not the same as zip, and Python very likely
> does not support the zipx compression algorithm.
>
> http://kb.winzip.com/kb/entry/7/
>
> My guess is that the zipx header is similar enough to zip that Python can
> retrieve the file names, but it cannot decompress the files.
> Unfortunately, instead of getting a nice error, it is fooled into
> thinking that it decompressed when in fact you just got junk.
>

The zip header includes a 32bit CRC for each file.  Do you know whether 
the zip module checks that CRC ?
>
> I suggest that you start with a simple example: create a plain text file
> with just a few words. Compress this single file to .zipx, then try to
> decompress it using Python. If it still fails, you will have a simple
> example that you could post here and see if others have more success.
>
>
>


-- 
DaveA

[toc] | [prev] | [standalone]


Back to top | Article view | comp.lang.python


csiph-web