Expresiones regulares en archivo

Jeremias jeremiasc en gmail.com
Lun Ene 24 22:31:48 CET 2005


No se si es exactamente lo que necesitas pero de algo te puede servir.

Este pedacito de código lee un archivo linea por linea chequeandola
con la expresión regular que vos le digas, y si machea imprime la
línea:

### INICIO

import re

def accion(lin):
    print lin

arch = open('/etc/dhcpd.conf', 'r')
regexp = re.compile('^host') # Linea que "empieza" con la palabra host
for linea in arch:
    if regexp.match(linea):
        accion(linea)
arch.close()

### FIN

La expresión que utilicé arriba machea sólo si la linea empieza con la
palabra 'host'.

Las expresiones regulares se pueden llegar a extender hasta donde dé
nuestra imaginación (o casi), eso esta bueno pero no es tan fácil me
parece, pero otros ejemplos podrían ser:

Una que machea con una linea que en cualquier lado tenga la palabra ' host '
regexp = re.compile('.*\shost\s.*') 

Que termine con 'host':
regexp = re.compile('host$')

Y así....

Espero que sirva.

Saludos.

jrms


On Mon, 24 Jan 2005 21:41:51 +0100 (CET), Christian González
<christiang020 en yahoo.es> wrote:
> Estoy creando un pequeño programa gráfico para
> modificar el archivo /etc/dhcpd.conf. Necesito
> reccorrer el archivo hasta encontrar una línea que
> empiece con la palabra "host", y cuando la encuentre
> se realizará una acción, pero no logro entender el
> funcionamiento de las expresiones regulares.
> 
> ¿Alguno de ustedes podría darme un ejemplo de cómo
> realizar lo antes dicho? Obviamente, yo me preocuparé
> de depurarlo; sólo necesito un ejemplo simple de
> búsqueda de una cadena en un archivo.
> 
> De antemano muchas gracias.
> 
> ______________________________________________
> Renovamos el Correo Yahoo!: ¡250 MB GRATIS!
> Nuevos servicios, más seguridad
> http://correo.yahoo.es
> _______________________________________________
> Python-es mailing list
> Python-es en aditel.org
> http://listas.aditel.org/listinfo/python-es
>




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