akualung
22/05/2007, 00:50
Hola. Os escribo por si me pudierais echar una mano. Estoy realizando el proyecto final de mi ciclo formativo, que consiste en programar una serie de funciones en python que realicen cambios en documentos ODF (por ejemplo cambiar una imagen de varios documentos ODT a la vez, etc).
Como los archivos ODF son simples archivos ZIP con documentos XML dentro, estoy usando los módulos estandar de python para tratar archivos ZIP (import zipfile) y archivos XML (import xml.dom.minidom).
Resulta que no consigo adivinar cómo puedo meter carpetas en un archivo ZIP desde la API de python. No se qué método necesito para hacerlo. Me estoy mirando las propiedades y métodos de los objetos contenidos en zipfile: http://docs.python.org/lib/zipfile-objects.html pero no hay manera, no se me ocurre cómo. Lo único que he conseguido es, en el método write, poner un nombre de archivo como primer argumento (por ejemplo "a.txt") y como segundo argumento decirle "carpeta/a.txt" y entonces primero me crea dentro dle zip una carpeta con ese nombre y luego copia dentro el archivo. Pero no es exactamente eso lo que me interesa, sino poder crear carpetas vacias dentro del zip generado con python (o igual que añades un archivo al zip, añadir un directorio vacío).
Espero haberme explicado bien. A ver si alguien puede ayudarme, que se me echa encima el plazo y voy de mal en peor [Ahhh]
Gracias de antemano. Un saludo.
Como los archivos ODF son simples archivos ZIP con documentos XML dentro, estoy usando los módulos estandar de python para tratar archivos ZIP (import zipfile) y archivos XML (import xml.dom.minidom).
Resulta que no consigo adivinar cómo puedo meter carpetas en un archivo ZIP desde la API de python. No se qué método necesito para hacerlo. Me estoy mirando las propiedades y métodos de los objetos contenidos en zipfile: http://docs.python.org/lib/zipfile-objects.html pero no hay manera, no se me ocurre cómo. Lo único que he conseguido es, en el método write, poner un nombre de archivo como primer argumento (por ejemplo "a.txt") y como segundo argumento decirle "carpeta/a.txt" y entonces primero me crea dentro dle zip una carpeta con ese nombre y luego copia dentro el archivo. Pero no es exactamente eso lo que me interesa, sino poder crear carpetas vacias dentro del zip generado con python (o igual que añades un archivo al zip, añadir un directorio vacío).
Espero haberme explicado bien. A ver si alguien puede ayudarme, que se me echa encima el plazo y voy de mal en peor [Ahhh]
Gracias de antemano. Un saludo.