parsear ficheros de configuracion

NeCuDeCo necudeco en gmail.com
Mie Mayo 10 18:46:59 CEST 2006


Definitivamente expresiones regulares

import re

result = re.search("(seccion[.]*EndSection)")
print resoult.group(1)

eso te deberia devolver todo el bloque section, y una vez ahi le pasas otra
vez expresiones regulares para obtener cada uno de los valores.

PD: sino devuelve todo elb loque, podria ser x la definicion del .
      En algunos sitios el . vale por culquier caracter, inlcuyendo el
cambio de linea. Sino fuera asi entonces no te devolvera nada

On 5/10/06, aNgel rEsendiz g. <sonajadiabolica en gmail.com> wrote:
>
> Puedes usar expresiones regulares, o comparar cadenas. En el ejemplo
> que pones puedes resolverlo algo así, para esto estoy pensando que el
> resto del archivo puede variar, y por ello no puedes sustituir el
> archivo completo.
> ##############################
>
> seccion_device='''    Section "Device"
>     Identifer    "tu video card"
>     Driver        "vesa"
>     etc            "mas datos"
> EndSection
> '''
>
> fichero=open('/path/to/xorg.conf','r')
> contenido=fichero.readlines()
> fichero.close()
> nuevo_contenido=''
> inicia_seccion=False
> for linea in contenido:
>     if linea=='Section "Device"\n':
>         inicia_seccion=True
>     if not inicia_seccion:
>         nuevo_contenido+=linea
>     else:
>         if linea=="EndSection\n":
>             nuevo_contenido+=seccion_device
>             inicia_seccion=False
> fichero=open('/path/to/xorg.conf','w')
> fichero.write(nuevo_contenido)
> fichero.close()
>
> #####################################
>
> Si son muchas operaciones puede ser algo engorroso, espero que alguien
> tenga una mejor solución
>
> On 5/10/06, diego <diglos en mundo-r.com> wrote:
> > Hola a todos:
> >
> > Hace poco que me suscribí a la lista y estoy gratamente impresionado,
> > tanto por la actividad como por la buena disposición de la gente.
> >
> > Estoy adaptando un poco easyubuntu a linex2006 y me gustaría modificar
> > también ficheros de configuración (por ejemplo bloques de xorg.conf,
> > como cambiar el contenido desde Section "Device" hasta EndSection y
> > operaciones similares).
> >
> > Un saludo y gracias por anticipado
> >
> > Diego
> >
> >
> >
> > _______________________________________________
> > Python-es mailing list
> > Python-es en aditel.org
> > http://listas.aditel.org/listinfo/python-es
> >
> >
> >
>
>
> --
> aNgel rEsendiz.!
> _______________________________________________
> Python-es mailing list
> Python-es en aditel.org
> http://listas.aditel.org/listinfo/python-es
>



--
--------------------------
NeCuDeCo
http://necudeco.blogsome.com
Your Jugdment Day is NOW




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