[pyar] Fortune en Python
"Matías A. Bellone"
matiasbellone en gmail.com
Jue Sep 23 17:13:07 ART 2010
On 09/23/2010 05:05 PM, Juan Carlos Ojeda wrote:
> Queria algo como el Fortune de Linux pero en Python,
> para no depender de mas dependencias valga la redundancia,
> el problema es que no se por que me devuelve 2 renglones en lugar de 1 ?
> Como correjirlo y que me devuelva 1 renglon ?
> /(frases.txt es un archivo de texto plano con 1 frase por renglon)/
>
> Muchas gracias
>
> juan en 3e:~$ python
> Python 2.6.5 (r265:79063, Apr 16 2010, 13:09:56)
> [GCC 4.4.3] on linux2
> Type "help", "copyright", "credits" or "license" for more information.
> >>> import random
> >>> file=open('/home/juan/frases.txt','r')
> >>> db=file.readlines()
> >>> file.close()
> >>> l=len(db)
> >>> s = int(1+random.random()*l)
> >>> print db[s]
> "Nunca voy a ver películas donde el pecho del héroe es mayor que el de
> la heroína" (Groucho Marx)
>
> >>> WTF!!!
>
La respuesta a tu pregunta es porque readlines lee todo (incluyendo el
salto de línea) y print agrega un salto de línea también. Por eso
terminás con uno de más :P
>>> file = open('/tmp/test')
>>> db = file.readlines()
>>> db
['un reglon\n', 'dos renglones\n', 'tres renglones']
Ahora un "bonus"; te la estás complicando de más:
>>> import random
>>> random.choice(db)
'un reglon\n'
>>> print random.choice(db).strip()
tres renglones
>>>
Eso es todo lo que necesitás. Olvidate de todo el resto.
Saludos,
Toote
More information about the pyar
mailing list