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 <[email protected]>escribió:
>
> On 02/01/2012 04:28 PM, Kiko wrote:
>
>>
>>
>> El 1 de febrero de 2012 21:52, Aldo Martinez Selleras <[email protected]
>> <mailto:[email protected]>> 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<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
> [email protected]
> http://mail.python.org/**mailman/listinfo/python-es<http://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
[email protected]
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/