[Python-es] extraer cadena dentro de corchetes
Aldo Martinez Selleras
aldo en caonao.cu
Mie Feb 1 21:52:02 CET 2012
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]
lo que me interesa guardar en lineas es solo la cadena dentro de los
corchetes, pero he hecho mil pruebas y ninguna satisfactoria :( ; me
parece que es por ser unos corchetes, como son caracteres q usan las
expresiones regulares, el que mejor resultado me dio fue con sub.
re.sub('\[','',linea)
re.sub('\]','',linea)
pero me gustaria hacer esto q logro con dos lineas, hacerlo en una, o
mejor, solo extraer el texto que esta dentro de los corchetes, esto me
da como resultado que elimina los corchetes, pero es q no es eso lo q me
interesa.
espero haber sido explicito
gracias de antemano
Más información sobre la lista de distribución Python-es