lunes, 6 de junio de 2011

Script en Python para contar la cantidad de direcciones de email en total de distintos archivos..

#!/usr/bin/env python

""" Este modulo esta hecho para contar la cantidad de correos dentro de una lista de archivos.
    Utiliza la clase counting para recolectar todos lo caracteres y sumas la cantidad arrobas que encuentra.
    Se puede utilizar con archivos Txt, pero en general funciona con todo archivo que en las direcciones de email,
    este explicitamente en el contenido de los ficheros sin ningun tipo de encriptacion ni ocultacion.
"""

class counting(): # Clase para contar la cantidad de arrobas.
 def __init__(self): # Metodo Constructor.
  # self.lparams para declarar los archivos a utilizar.
  self.lparams=["correojaveriana","correos","Correos COLPATRIA", "empresas computrabajo", "reenviar todas las semanas"]
  self.iresult=int(0) # Se inicia la variable que devuelve la informacion de la cantidad de arrobas.
  self.sinformation=str() # Lista para guardar la informacion inicial Total.
 def upload(self): # Metodo que carga la informacion inicial Total.
  for i in self.lparams: # Ciclo para cargar la informacion de archivo por archivo.
   f=file(i,"r") # Se accede por el metodo de lectura a cada archivo.
   s=f.read() # Se copia la informacion de cada archivo por medio de listas.
   self.sinformation+=s # Se copia en la lista general que va a contener una lista de las lista con la informacion.
   f.close() # Se Cierra cada archivo.
 def procesor(self): # Metodo para procesar toda la informacion.
  index=0 # Se comienza por cero el contador del ciclo. Para recorrer desde un principio la cadena general.
  while(True):
   index=self.sinformation.find("@", index) # Buscar arrobas.
   if(index==-1 or index>len(self.sinformation)): # Estas condiciones son para saber cuando la funcion str().find no encuentra arrobas y para que no se pase del rango de longitud de la cadena general. Entonces se detiene el ciclo.
    break
   self.iresult+=1 # Se incrementa la cantidad.
   index+=1 # Se incrementa en 1 el contador para el proximo uso del la funcion str().
 def out(self): # Metodo para dar salida a la informacion de la cantidad de arroba de los archivos.
  print self.iresult # Se imprime en pantalla el resultado.
  f=file("out-counting","w") # Se crea y abre un archivo para guardar la informacion de salida.
  f.write(str(self.iresult)) # Se guarda la informaci0n de salida, convirtiendo el numero en cadena.
  f.close()                  # Se cierra el archivo.

# Acontinuacion se ejecuta el codigo implementado.
a=counting() # Se crea un objeto de la clase implementada.
a.upload()   # Se invoca al metodo para cargar la informaci0n inicial.
a.procesor() # Se procesa la informacion cargada.
a.out()      # Se da salida al resultado obtenido.

No hay comentarios: