martes, 22 de septiembre de 2009

Hablando en Python

Por este tiempo estoy cursando la asignatura "Taller Libre II: Programación de Red". Esta asignatura propone la programación en python de protocolos de aplicación TCP/IP. Esto nos topa con dos desafíos:
  1. Implementar los protocolos estudiados teoricamente en el curso de Redes. 
  2. y aprender Python... pasemos a hablar del lenguaje. 
Realmente, conocía muy poco de Python, una de las cosas que mas me sorprendió es su simplicidad y la cantidad de módulos que extienden el lenguaje y que nos ayudan con diversas tareas. Con el poco conocimiento que tengo, ya me animaría a decir que no debe haber .py de complejidad considerable que no tenga un import. Ahora veamos, a modo de ejemplo, lo simple que puede ser en python crear un pequeño cliente POP3 que liste, borre y devuelva mails de una cuenta de correo:

#-*- coding: utf8 -*-
import poplib

#Servidor POP3
pop = poplib.POP3('pop3.servidor.com')

#Datos de teclado
user = raw_input("Usuario: ")
password = raw_input("Pasword: ")

#Autenticacion
pop.user(user)
pop.pass_(password)

#Menu ultra primitivo
print "1- Listar Mensajes"
print "2- Recuperar Mensaje"
print "3- Borrar Mensaje"
opcion = int(raw_input("Opcion -Salir con Otra Tecla-: "))

if opcion == 1:
 mensajes = pop.list()[1]
 print mensajes
elif opcion == 2:
 nro_msj = raw_input("Numero de mensaje a recuperar: ")
 print "Mensaje N°" + nro_msj
 print pop.retr(nro_msj);
elif opcion == 3:
 nro_msj = raw_input("Numero de mensaje a borrar: ")
 print pop.dele(nro_msj);
 print "Se ha borrado el mensaje N°" + nro_msj

pop.quit();

Me sorprende sobremanera el nivel de abstracción al que se ha llegado. Esto lo dice alguien que balbucea inglés, pero se observa a simple vista que Python es tan claro que se acerca muchisimo a ser un pseudo-código de los que aprendimos en las asignaturas introductorias a la programación y esto realmente ayuda sobre todo a leer code ajeno.

Por ahora, hasta acá llegamos con Python pero prometo mas posts a medida que vaya investigando.

Hasta la próxima!

2 comentarios:

  1. Yo crei que estabas con PHP, en Perl que andas haciendo??

    ResponderEliminar
  2. Me están obligando con Perl en Taller Libre I para Information Retrieval -> Procesamiento de documentos y toda esa cosa media rara. Mi primera impresión es que es muuuy parecido a PHP, según comentan PHP vendría a ser una "evolución" de Perl.

    Despues voy a tirar un par de post cuando esté mas avanzado con el lenguaje.

    Abrazo!

    ResponderEliminar