reordenar archivos de texto segun orden alfabetico

Chema Cortes pych3m4 en gmail.com
Mar Mayo 13 04:10:49 CEST 2008


El día 12 de mayo de 2008 23:15, punchik punchik <punchikk en yahoo.com> escribió:
> hola gente, tengo un archivo de texto con palabras y sus respectivas definiciones, el cual uso para llenar una base de datos .
>
>   mi archivo de texto seria algo asi:
>
>
>   tasa          me gusta mi tasa
>   gato           el gato es un animal
>   mesa         la mesa es una cosa
>   bicicleta     es algo con dos ruedas
>
>
>   bueno la cosa es que tengo miles de palabras con definiciones en mi archivo de texto que esta en desorden... mi pregunta es, hay alguna manera de reordenar las lineas de mi archivo segun su orden alfabetico en python? por ejemplo , las palabras que comienzen con a estarian primero en la lista y las que empiezen con z estaria al final.....me gustaria saber si ya hay algun script que pueda hacer esto, o alguna funcion dentro de python para hacerlo,pero si hay forma de hacerlo de alguna otra manera tambien me gustaria saber como.

Para ordenar se emplea la función sorted(), algo tan simple como:

lista_definiciones=sorted(file("definiciones.txt"))

Ya que quieres saber  "cómo"...

- file("definiciones.txt") abre el fichero y devuelve un interador
para ir leyendo el fichero línea por línea.
- sorted() ordena la secuencia que le pasas como argumento. Al pasarle
un iterador, lo convierte en una lista y la devuelve ordenada.

Si quieres guardar todo en un fichero, se puede hacer así:

file("definiciones_ordenadas.txt","w").writelines(lista_definiciones)

Se puede hacer mejor, por ejemplo ordenando sin tener en cuenta
mayúsculas ni minúsculas:

lista_definiciones=sorted(file("definiciones.txt"), key=str.lower)
_______________________________________________
Lista de correo Python-es 
http://listas.aditel.org/listinfo/python-es
FAQ: http://listas.aditel.org/faqpyes





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