Hola, saltate el puteo de los zips asi: en ubuntu: sudo aptitude install p7zip-full man 7z leer un poquito que quieres hacer
luego haces un system call desde tu python import os cmd = '7z extraer o lo que convenga' os.system(cmd) Es mi primer mail en la lista y ya llevo tiempo, un saludo a todos El 13 de julio de 2011 17:58, Luis Franco Vázquez <[email protected]>escribió: > ¡Ah! y borra los zip originales, perdona, no me daba cuenta. Si quieres que > no haga eso comenta: > unlink($archivoZip->getPathname()); > > Un saludo > > El 13 de julio de 2011 17:56, Luis Franco Vázquez > <[email protected]>escribió: > > Hola Jorge: >> >> yo estaba haciendo lo mismo con PHP. >> Prueba este script y me cuentas (ejecútalo si quieres desde consola con >> php nombre_script.php). >> Cambia la ruta del directorio y ya se encarga él de buscar todos los zip y >> de extraerlos en el mismo sitio. >> >> Ya me dirás. >> Un saludo >> <?php >> >> /** >> * Librería que extiende el FilterIterator del SPL de PHP >> * para filtrar sólo los archivos de un tipo >> * >> */ >> class FiltroDirectorio extends FilterIterator >> { >> private $_tipo; >> >> /** >> * Constructor >> * >> * @access public >> * @return void >> */ >> public function __construct($path,$tipo) >> { >> parent::__construct(new DirectoryIterator($path)); >> $this->_tipo = '.' . strtolower($tipo); >> } >> >> /** >> * Comprueba si durante una iteración se cumplen las condiciones >> * >> * @access public >> * @return Boolean $aceptable >> */ >> public function accept() >> { >> $aceptable = FALSE; >> $iteradorDirectorio = $this->getInnerIterator(); >> $aceptable = $iteradorDirectorio->isFile(); >> if ($aceptable) >> { >> $aceptable = (bool) >> substr_count(strtolower($iteradorDirectorio->getFilename()), $this->_tipo); >> } >> return $aceptable; >> } >> >> } >> >> $rutaDirZip = >> '/home/usuario/Escritorio/catastro/muestras/urbana_sin_historia/'; >> $dir = new FiltroDirectorio($rutaDirZip,'zip'); >> foreach ($dir as $archivoZip) >> { >> $zip = new ZipArchive; >> if ($zip->open($archivoZip->getPathname()) === TRUE) { >> $zip->extractTo($rutaDirZip); >> $zip->close(); >> echo 'Extrayendo '.$archivoZip->getPathname().PHP_EOL; >> echo 'Borrando '.$archivoZip->getPathname().PHP_EOL; >> unlink($archivoZip->getPathname()); >> >> } else { >> echo 'Fallo extracción: '.$archivoZip->getPathname().PHP_EOL; >> } >> } >> ?> >> El 13 de julio de 2011 17:31, Jorge Arévalo < >> [email protected]> escribió: >> >> Lo olvidaba. Es Python 2.7. Pasa igual con 2.6 >>> >>> 2011/7/13 Jorge Arévalo <[email protected]>: >>> > Buenas, >>> > >>> > Estoy procesando datos catastrales con Python, y me estoy encontrando >>> > con un problema bastante molesto. Os cuento lo que hago: >>> > >>> > 1.- Con certificado digital, me bajo unos shapefiles de prueba del >>> > servicio de descarga masiva de datos catastrales >>> > (https://www.sedecatastro.gob.es/OVCFrames.aspx?TIPO=TIT&a=masiv). >>> > Elijo la opción "rústica con historia". Me baja un fichero zip >>> > >>> > 2.- Con Python, descomprimo ese fichero zip. Dentro tiene más ficheros >>> > zip (PARCELA.zip, SUBPARCE.zip, etc). >>> > >>> > 3.- Intento descomprimir cada uno de los ficheros por separado, y con >>> > todos ellos Python me da una excepción "BadZipFile: File is not a zip >>> > file". Llamando al método "is_zipfile" >>> > (http://docs.python.org/library/zipfile.html), efectivamente, me >>> > devuelve FALSE. He estado buscando por Internet gente que ha tenido un >>> > problema similar, pero no he encontrado ninguna respuesta >>> > satisfactoria todavía. En StackOverflow hay un par de hilos sin >>> > respuesta sobre el tema. Por lo que he podido sacar, será que los >>> > ficheros no están en el formato PKZIP. 7-zip me los abre sin >>> > problemas, y el unzip de Ubuntu lo mismo. >>> > >>> > Hasta donde yo creía saber, el algoritmo PKZIP era el implementado >>> > para la compresión ZIP, y pensé que cualquier librería que soportara >>> > archivos zip no tendría problemas con dicho formato, pero se ve que >>> > no. >>> > >>> > ¿Alguien tiene experiencia con los ficheros del catastro?, ¿o con este >>> > tipo de problema en ficheros zip? >>> > >>> > Gracias por anticipado, y saludos, >>> > >>> > -- >>> > Jorge Arévalo >>> > Internet & Mobility Division, DEIMOS >>> > [email protected] >>> > http://es.linkedin.com/in/jorgearevalo80 >>> > http://mobility.grupodeimos.com/ >>> > http://gis4free.wordpress.com >>> > http://geohash.org/ezjqgrgzz0g >>> > >>> >>> >>> >>> -- >>> Jorge Arévalo >>> Internet & Mobility Division, DEIMOS >>> [email protected] >>> http://es.linkedin.com/in/jorgearevalo80 >>> http://mobility.grupodeimos.com/ >>> http://gis4free.wordpress.com >>> http://geohash.org/ezjqgrgzz0g >>> _______________________________________________ >>> Spanish mailing list >>> http://lists.osgeo.org/mailman/listinfo/spanish >>> http://es.osgeo.org >>> http://twitter.com/osgeoes >>> >> >> > > _______________________________________________ > Spanish mailing list > http://lists.osgeo.org/mailman/listinfo/spanish > http://es.osgeo.org > http://twitter.com/osgeoes > >
_______________________________________________ Spanish mailing list http://lists.osgeo.org/mailman/listinfo/spanish http://es.osgeo.org http://twitter.com/osgeoes
