Re: [Python-es] extraer cadena dentro de corchetes

2012-02-02 Por tema lopz
Te lo digo de memoria:

 import re

 string = open('file.data', 'r').read()
 regex = re.compile(\[(.*?)\])
# Run findall
 regex.findall(string)
[u'cadena1', u'cadena2']
 string.close()

-- 
lopz es libre, usa -- GNU/linux gentoo

+--[RSA 2048]--+
|  ..o.o=+       |
|   o =o*.+      |
|  . . *oO .      |
|     .EBoo      |
|      o.S         |
+--[lopz.org]--+
___
Python-es mailing list
Python-es@python.org
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/


Re: [Python-es] extraer cadena dentro de corchetes

2012-02-02 Por tema Aldo Martinez Selleras

gracias, este funciono perfecto para lo que necesito!
___
Python-es mailing list
Python-es@python.org
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/


Re: [Python-es] extraer cadena dentro de corchetes

2012-02-02 Por tema Aldo Martinez Selleras
bueno, disculpenme, pero me deslumbre un poco con la sencillez de los 
codigos de python, el codigo que envio el colega Jhonlier esta super, 
pero el tema del modulo ConfigParser esta mas que genial, xq ya este me 
evita mchas molestias de entrar en temas del codigo que este 
resuelve, me refiero a lo de extraer los atributos de cada seccion, wao, 
eso esta MUY pero MUY bueno


gracias a todos

PD: algun libro que recomienden para leer poco a poco, preferiria que 
fuera lo mas practico posible

___
Python-es mailing list
Python-es@python.org
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/


[Python-es] extraer cadena dentro de corchetes

2012-02-01 Por tema Aldo Martinez Selleras
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
___
Python-es mailing list
Python-es@python.org
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/


Re: [Python-es] extraer cadena dentro de corchetes

2012-02-01 Por tema Jose Caballero
 [cadena1]
 attr1 = value1
 attr2 = value2
 attr3 = value3
 attr4 = value4
 attr5 = value5

 [cadena2]
 attr1 = value1
 attr2 = value2
 attr3 = value3
 attr4 = value4
 attr5 = value5




Hola,

tiene todo el aspecto de los tipicos ficheros de conf.
Si ese es el proposito, quizas te ayudaria usar el modulo que python trae
para manipular ficheros de este tipo


http://docs.python.org/library/configparser.html#module-ConfigParser

Suerte,
Jose

P.S. perdon por la ortografia.
___
Python-es mailing list
Python-es@python.org
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/


Re: [Python-es] extraer cadena dentro de corchetes

2012-02-01 Por tema Kiko
El 1 de febrero de 2012 21:52, Aldo Martinez Selleras a...@caonao.cuescribió:

 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
___
Python-es mailing list
Python-es@python.org
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/


Re: [Python-es] extraer cadena dentro de corchetes

2012-02-01 Por tema Aldo Martinez Selleras


On 02/01/2012 04:28 PM, Kiko wrote:



El 1 de febrero de 2012 21:52, Aldo Martinez Selleras a...@caonao.cu
mailto:a...@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
___
Python-es mailing list
Python-es@python.org
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/


Re: [Python-es] extraer cadena dentro de corchetes

2012-02-01 Por tema Carlos Zuniga
2012/2/1 Aldo Martinez Selleras a...@caonao.cu:

 On 02/01/2012 04:28 PM, Kiko wrote:



 El 1 de febrero de 2012 21:52, Aldo Martinez Selleras a...@caonao.cu
 mailto:a...@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


No será que hay espacios después del corchete?

Prueba  con `linea.strip()[1:-1]`

Saludos
-- 
Linux Registered User # 386081
A menudo unas pocas horas de Prueba y error podrán ahorrarte minutos
de leer manuales.
___
Python-es mailing list
Python-es@python.org
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/


Re: [Python-es] extraer cadena dentro de corchetes

2012-02-01 Por tema Tony Peña
Usa ConfigParser como te recomendo el amigo,... Jose Caballero
te va a aliviar todo el proceso ese por completo.

import ConfigParser

config_file = os.path.join(os.path.dirname(os.path.abspath(__file__)),
'Config.cfg') # donde el config.cfg es el fichero que mostrastes arriba de
tus atributos y valores.
config = ConfigParser.RawConfigParser()
config.read(config_file)

y luego solo tienes que decir

value_X = config.get('Cadena1', 'attri1')

y listo
usar value_X pa lo q necesites

Suerte




El 1 de febrero de 2012 17:56, Aldo Martinez Selleras a...@caonao.cuescribió:


 On 02/01/2012 04:28 PM, Kiko wrote:



 El 1 de febrero de 2012 21:52, Aldo Martinez Selleras a...@caonao.cu
 mailto:a...@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#**stringshttp://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

 __**_
 Python-es mailing list
 Python-es@python.org
 http://mail.python.org/**mailman/listinfo/python-eshttp://mail.python.org/mailman/listinfo/python-es
 FAQ: http://python-es-faq.wikidot.**com/http://python-es-faq.wikidot.com/




-- 
Antonio Peña
Secure email with PGP 0x8B021001 available at http://pgp.mit.edu
Fingerprint: 74E6 2974 B090 366D CE71  7BB2 6476 FA09 8B02 1001
___
Python-es mailing list
Python-es@python.org
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/


Re: [Python-es] extraer cadena dentro de corchetes

2012-02-01 Por tema Jhonlier Suarez Molina
Bueno ya se ha escrito bastante sobre el asunto pero igual te pongo mi 
versión:


lineas_corchetes = []
fichero =open(file.data, rU) #Creo que la U le aporta genericidad 
multiplataforma

for linea in fichero: #No hace falta poner readlines si es un fichero texto
   l = linea.strip() #Quita los espacios iniciales y finales y los 
saltos de linea

   if l and l.startswith('[') and l.endswith(']'):
   #No esta vacia la linea y empieza y termina en corchetes
   lineas_corchetes.append(l[1:-1])
fichero.close()
print lineas_corchetes

En lineas_corchetes queda lo que quieres.

Espero que sirva para algo pues he usado bastante cosas como esas para 
ficheros de configuración de mis aplicaciones Python.

Saludos y suerte.
J.
___
Python-es mailing list
Python-es@python.org
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/