[Python-es] extraer cadena dentro de corchetes

Aldo Martinez Selleras aldo en caonao.cu
Mie Feb 1 22:56:11 CET 2012


On 02/01/2012 04:28 PM, Kiko wrote:
>
>
> El 1 de febrero de 2012 21:52, Aldo Martinez Selleras <aldo en caonao.cu
> <mailto:aldo en caonao.cu>> escribió:
>
>     saludos a todos, soy nuevo en la lista y en el mundo de python,
>     entre en el por interes propio, debido a la referencia q tengo de la
>     robustez del lenguaje de programacion, y tengo una tarea ahora con
>     un archivo que necesito parsear y es el primer proposito que me he
>     autoindicado para hacer con python.
>
>     resulta que es un archivo con un estructura determinada, y ya se
>     como leer el archivo linea por linea, pero se me trabo el paragua al
>     querer sacar una cadena que esta entre dos corchetes, pongo detalles
>
>     la estructura del archivo es esta
>     [cadena1]
>     attr1 = value1
>     attr2 = value2
>     attr3 = value3
>     attr4 = value4
>     attr5 = value5
>
>     [cadena2]
>     attr1 = value1
>     attr2 = value2
>     attr3 = value3
>     attr4 = value4
>     attr5 = value5
>
>     y ya logre hacer esto, que me gusta como funciona!
>
>     lineas = []
>
>     fichero = open("file.data", "r")
>
>     for linea in fichero.readlines():
>             if not linea:
>                     break
>             if linea[0] == '[':
>                     lineas.append(linea)
>     print lineas
>     fichero.close()
>
>
>     y esto me devuelve
>     [cadena1], [cadena2]
>
> Con lo que tienes hecho puedes hacer (solo he incluido lo que está en
> negrita, el resto es exactamente tu programa):
>
> lineas = []
>
> fichero = open("file.data", "r")
>
> for linea in fichero.readlines():
>         if not linea:
>                 break
>         if linea[0] == '[':
>                 lineas.append(linea*[1:-1]*)
> print lineas
> fichero.close()
>
> Mira en [1] para ver más.
>
> [1] http://docs.python.org/tutorial/introduction.html#strings

eso me devuelve el arreglo, pero de esta forma :(

'cadena1]','cadena2]'

la verdad en casi todos los intentos q hice, me daba mas problemas con 
el corchete del final, es como q mas conflictivo este

muchas gracias


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