Compressing folders in Windows using Python.

S

sri2097

Hi,
I'm trying to zip a particular fiolder and place the zipped folder into
a target folder using python. I have used the following command in
'ubuntu'.

zip_command = 'zip -qr %s %s' % (target, ' '.join(source))

I execute this using os.command(zip_command). It works fine...

But when I run this script in Windows XP, I get an error while
executing the above zip command. What command is there to zip files in
Windows? Or is there any other problem ?
 
S

Steven D'Aprano

Hi,
I'm trying to zip a particular fiolder and place the zipped folder into
a target folder using python. I have used the following command in
'ubuntu'.

zip_command = 'zip -qr %s %s' % (target, ' '.join(source))

I execute this using os.command(zip_command). It works fine...

But when I run this script in Windows XP, I get an error while
executing the above zip command.

Would you like to tell us what error you get?

No no, I'll just guess... your disk is full... am I close?

*wink*
What command is there to zip files in Windows? Or is there any other problem ?

What happens if you call up a Windows command prompt and type zip at the
prompt?
 
H

Heiko Wundram

Steven said:
Would you like to tell us what error you get?

I presume the error he's seeing is something along the line of:

"zip: Bad command or filename."

That's basically because there is no commandline builtin for zipping up
files on Windows, and I don't know of WinZIP or any of the InfoZIP derived
GUIs installing a command-line zipper.

What might help you though (and keep you platform-independent):

http://www.python.org/doc/2.4.2/lib/module-zipfile.html

--- Heiko.
 
H

Heiko Wundram

Heiko said:
That's basically because there is no commandline builtin for zipping up
files on Windows, and I don't know of WinZIP or any of the InfoZIP derived
GUIs installing a command-line zipper.

btw. the zip command isn't builtin on Unix either. It's only available if
you installed the corresponding InfoZIP package(s). I know pretty much
every Linux-distribution comes preinstalled with it (because of stuff like
ark, a KDE-frontend for archivers, requiring it), but you shouldn't rely on
that either.

--- Heiko.
 
B

bren[at]gillatt.org

Heiko said:
I presume the error he's seeing is something along the line of:

"zip: Bad command or filename."

That's basically because there is no commandline builtin for zipping up
files on Windows, and I don't know of WinZIP or any of the InfoZIP derived
GUIs installing a command-line zipper.

What might help you though (and keep you platform-independent):

http://www.python.org/doc/2.4.2/lib/module-zipfile.html

--- Heiko.

Go and get something like 7-ZIP and put a path environment variable in.
 
C

Christian Tismer

sri2097 said:
Hi,
I'm trying to zip a particular fiolder and place the zipped folder into
a target folder using python. I have used the following command in
'ubuntu'.

zip_command = 'zip -qr %s %s' % (target, ' '.join(source))

I execute this using os.command(zip_command). It works fine...

But when I run this script in Windows XP, I get an error while
executing the above zip command. What command is there to zip files in
Windows? Or is there any other problem ?

zip is not a built-in command for windows.
You might use winzip or something else, there is
a bunch of different compression tools available.

ciao - chris

--
Christian Tismer :^) <mailto:[email protected]>
tismerysoft GmbH : Have a break! Take a ride on Python's
Johannes-Niemeyer-Weg 9A : *Starship* http://starship.python.net/
14109 Berlin : PGP key -> http://wwwkeys.pgp.net/
work +49 30 802 86 56 mobile +49 173 24 18 776 fax +49 30 80 90 57 05
PGP 0x57F3BF04 9064 F4E1 D754 C2FF 1619 305B C09C 5A3B 57F3 BF04
whom do you want to sponsor today? http://www.stackless.com/
 
T

Tim N. van der Leeuw

Christian said:
zip is not a built-in command for windows.
You might use winzip or something else, there is
a bunch of different compression tools available.

ciao - chris

Something else to watch for -- Spaces in filenames. Uncommon on
unix/linux, but very common on windows. Put some double-quotes around
the filenames in your zip_command:

zip_command = 'zip -qr "%s" "%s"' % (target, ' '.join(source))


AFAIK there are built-in zip modules available in Python? They might be
a better alternative to calling an external zip command?

(Winzip btw, has a seperate download for a command-line capable version
of the compressor)

cheers,

--Tim
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,766
Messages
2,569,569
Members
45,042
Latest member
icassiem

Latest Threads

Top