[Python-es] Buscar palabras en un archivo

Manuel Enrique González Ramírez maengora en gmail.com
Jue Jun 26 17:03:28 CEST 2014


Compañero,

A ver si te sirve este pequeño código que hice creo que hace dos años
cuando surgió la necesidad en la empresa de generar unos reportes en base a
los logs que dejaba un servidor:

import os

# Solicito el nombre del archivo a analizar
narchivo = raw_input('Archivo log a analizar: ')

try:
    # Abro el archivo para la lectura
    archivo = open(narchivo,'r')

    # Inicio el contador
    cENV = 0
    cREC = 0
    cE50 = 0
    cE20 = 0

    # Inicio el bucle que lee el archivo
    # y agrego la condicion que busca la palabra
    for linea in archivo:
    if linea.find('ENV') >= 0:
        cENV += 1
    if linea.find('REC') >= 0:
        cREC += 1
    if linea.find('50 null') >= 0:
        cE50 += 1
    if linea.find('20 Operador') >= 0:
        cE20 += 1

    # Cierro el Archivo
    archivo.close()
    print 'Total solicitudes enviadas: ',cENV + 1
    print 'Total solicitudes recibidas: ',cREC + 1
    print 'Total respuesto 50 null: ',cE50 + 1
    print 'Total respuesta 20 Operador no responde: ',cE20 + 1
except IOError:
    print 'El archivo indicado no existe'


El 8 de junio de 2014, 5:05, ruben linux <rubia.linux en gmail.com> escribió:

> Saludos a todos, este es mi primer correo a la lista.
>
> Estoy empezando con Python, y este me pareció un buen sitio para empezar y
> aprender. Decirnos antes de nada que este tema ya se lo busque en Google, y
> no doy con la respuesta adecuada, o la que me soluciona el problema.
>
> Como parte de mi aprendizaje, me he propuesto hacer un suripanta que
> busque palabras en un archivo, esta palabras están en otro archivo. Os dejo
> un trozo del código
> ...
> for line in file (a, 'r')
>       if palabra in líne:
>              print line
>
> palabra es una función que lee el archivo fuente, donde se encuentran las
> palabras que quiero buscar. Esté el el fallo que me devuelve:
>
>    TypeError: 'in <string>' requires string as left operand! nota file
>
> Entiendo que no le puedo pasar a if un archivo, ni una función, sólo
> palabras, y eso es lo que no se hacer. Necesito qué me guíen.
>
> Tal vez usando listas... En tal caso cual es el tamaño máximo de una
> lista???.
>
> Gracias a todos.
>
> _______________________________________________
> Python-es mailing list
> Python-es en python.org
> https://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/
>
>


-- 
Manuel Enrique González Ramírez
http://maengora.blogspot.com <http://maengora.com>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://mail.python.org/pipermail/python-es/attachments/20140626/63e9f6b2/attachment.html>


Más información sobre la lista de distribución Python-es