[Spanish] Re: Catastro + Python
Fabio Rueda Carrascosa
avances123 at gmail.com
Wed Jul 13 12:12:54 EDT 2011
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 <luis en piezas.org.es>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 <luis en 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 en deimos-space.com> escribió:
>>
>> Lo olvidaba. Es Python 2.7. Pasa igual con 2.6
>>>
>>> 2011/7/13 Jorge Arévalo <jorge.arevalo en 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 en 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 en 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
>>>
>>
>>
>
> _______________________________________________
> Spanish mailing list
> http://lists.osgeo.org/mailman/listinfo/spanish
> http://es.osgeo.org
> http://twitter.com/osgeoes
>
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: http://lists.osgeo.org/pipermail/spanish/attachments/20110713/67b4a354/attachment-0001.html
More information about the Spanish
mailing list