Cortando los contactos rápidamente

He pasado la agenda del móvil al PC y me la ha exportado como un vcard enorme de más de 400kb. En la vcard iban las fotos codificadas en base64, como decía hoy arturogf. Lo que yo necesitaba era una vcard por cada contacto. Si no tuviese la foto mejor, pero tampoco me importaba demasiado porque me puede ser útil en algún momento.

Después de buscar un poco no he encontrado nada que lo hiciese así que en unas pocas líneas lo he hecho. Lo pongo aquí por si hay alguien más que lo busca aunque en realidad no tiene mucha ciencia.

#!/usr/bin/python

import random

f = open(‘vcard.vcf’, ‘r’)
while True:
   linea = f.readline()
   if (linea != «END:VCARD\r\n»):
     if (linea == «BEGIN:VCARD\r\n»):
       nombre = ‘contacto’ + str(random.randint(1,10000)) + ‘.vcf’
       fcontacto = open(nombre, ‘w’)
   fcontacto.write(linea)
   if (linea == «END:VCARD\r\n»):
     fcontacto.close()

Como se ve claramente, el while True en lugar de comprobar el final del archivo es una burrada, pero no necesito nada más. Otro problema que sí puede ser más importante es que no compruebo que el nombre del archivo generado es único, y es posible que se pierda algún contacto. Era solo por probar… no es mucho más complicado introducir estas comprobaciones si alguien tiene algún interés :)

Archivado en:Sin categoría

No hay comentarios en “Cortando los contactos rápidamente”