Ver Mensaje Individual
  #1 (permalink)  
Antiguo 11/02/2009, 06:04
xayide
 
Fecha de Ingreso: febrero-2006
Mensajes: 174
Antigüedad: 18 años, 2 meses
Puntos: 0
como crear .zip desde programa python?

Hola a todos! Quiero crear una carpeta comprimida en .zip desde el propio programa python.
Primero abro los ficheros .txt y los manipulo para añadir datos. Estos ficheros los guardo en el escritorio de mi ordenador. Luego cojo estos ficheros y los quiero meter en una carpeta .zip que también estará en el escritorio.

Código:
path="home/yo/Escritorio/"
fich1=open(path+"fichero1.txt", "a")
fich1.write("cosas")
...
fich2=open(path+"fichero2.txt","a")
fich2.write("mascosas")
...
zip = zipfile.ZipFile(path+"comprimido.zip", 'w')

zip.write(fich1)
zip.write(fich2)

zip.close()
Si lo hago así, me da este error cuando llega a zip.write(fich1):

Cita:
File "/usr/lib/python2.5/zipfile.py", line 541, in write
st = os.stat(filename)
TypeError: coercing to Unicode: need string or buffer, file found
He probado a poner zip.write("/home/yo/Escritorio/fich1.txt") y lo que ha hecho es crear la carpeta zip pero dentro de ella está la carpeta home, dentro la carpeta yo, dentro la carpeta Escritorio y dentro fich1.txt.
Lo que quiero es que añada los fich directamente, sin ninguna carpeta más dentro de la comprimida.

¿Alguien sabe cómo hacerlo?
Muchas gracias!!