chisme para leer una linea aleatoria desde un fichero F
import sys,random
with open(sys.argv[1],"r") as f #abrimos er fishero
f.seek(0,2) # vamos al final
bytes = f.tell() # Averiguamos el tamaño
f.seek(int(bytes*random.random())) #Movemos el puntero a un sitio aleatorio
while True: #buscamos hacia atras hasta encontrar el principio del fichero
f.seek(-2,1)
ch = f.read(1)
if ch=='n': break #o encontramos un CRLF
if f.tell()==1: break
chisme para leer una linea aleatoria desde un fichero F
import sys,random
with open(sys.argv[1],"r") as f #abrimos er fishero
f.seek(0,2) # vamos al final
bytes = f.tell() # Averiguamos el tamaño
f.seek(int(bytes*random.random())) #Movemos el puntero a un sitio aleatorio
while True: #buscamos hacia atras hasta encontrar el principio del fichero
f.seek(-2,1)
ch = f.read(1)
if ch=='n': break #o encontramos un CRLF
if f.tell()==1: break
print f.readline() # Imprimimos la linea