[Spanish] Re: Catastro + Python
Luis Franco Vázquez
luis at piezas.org.es
Wed Jul 13 11:58:20 EDT 2011
¡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 <luis at piezas.org.es>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 <
> jorge.arevalo at deimos-space.com> escribió:
>
> Lo olvidaba. Es Python 2.7. Pasa igual con 2.6
>>
>> 2011/7/13 Jorge Arévalo <jorge.arevalo at deimos-space.com>:
>> > 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
>> > jorge.arevalo at deimos-space.com
>> > 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
>> jorge.arevalo at deimos-space.com
>> 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
>>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.osgeo.org/pipermail/spanish/attachments/20110713/734badb1/attachment.html
More information about the Spanish
mailing list