[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