quitar salto de linea readline

Chema Cortes pych3m4 en gmail.com
Lun Feb 5 19:42:42 CET 2007


El 2007/2/5, Daniel Muñiz Fontoira <dmunhiz en gmail.com> escribió:

> otra cosa
> Si hago esto:
>
> lineas=(l.rstrip('\n') for l in file("config.ini","rw"))
> for l in lineas:
>   print l
>
> muestra todo pero si quiero solo la línea 2, hay forma de decir
> variable= a línea 2
> he probado variable=lineas[0] y variable=lineas(0) y nada.

Por fijar conceptos, lo que quieres es acceso aleatorio a las líneas
de un fichero secuencial. Nada te va a evitar tener que leer todo el
fichero hasta llegar a la línea deseada.

Tienes tres posibilidades:

1) volcar todo el fichero a una lista en memoria y trabajar desde allí

  linea_2=list(lineas)[2]

2) en plan cutre, leer línea tras línea hasta llegar a la deseada

  linea_2=(l for i,l in enumerate(lineas) if i==2).next()

3) manejar los iteradores con el módulo 'itertools'

  from itertools import islice

  n=2
  linea_2=islice(lista,n,n+1).next()


Puede que exista algún método más elegante.




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