elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


  Mostrar Mensajes
Páginas: [1] 2 3
1  Programación / Scripting / [traducción] Qué hay de nuevo en Python 2.5 en: 26 Septiembre 2006, 04:07 am
Hace un tiempo atrás leí un mail de la Lista de Python en el que se planteaba la idea de traducir el artículo escrito por Andrew Kuchling: What’s New in Python 2.5. Desde entonces sigo atento el trabajo que realiza en su blog El Ornitorrinco Enmascarado. Lamentablemente da la impresión que este esfuerzo está pasando un tanto desapercibido, así que para ayudar a dar a conocer este muy, muy, muy útil documento, decidí ayudar publicando las traducciones, aunque con algunas pequeñas e insignificantes modificaciones (obviamente previa autorización)...

si a alguien le interesa revisar el trabajo y/o colaborar, pueden acceder a él desde http://s1d4rt4.wordpress.com/whats-new-in-python-25/. Eso sería, ojala le sirva a alguien mas =)

saludos!
2  Programación / Scripting / pyget o.O en: 20 Septiembre 2006, 03:46 am
tratando de emular el famoso comando wget del mundo unix

Código:
#!/usr/bin/env python
# -*- coding: utf-8 -*-

''' una mala copia de wget'''

__author__ = 's1d4rt4 <s1d4rt4@gmail.com'
__date__ = '19/09/06'
__version__ = '1.0'
__license__ = 'GPL'

import urllib
import sys
import os

def pyget(url,path):
''' descarga el archivo'''

file = url.split('/')[-1]
dir = os.getcwd()

try:
print 'Conectando a', url
urllib.urlopen(url)
print 'Espere mientras se descarga %s...' % file
urllib.urlretrieve(url,path)
print '%s ha sido descargado en %s' % (file,dir)
except:
print 'Ha ocurrido un error, compruebe la URL'

if __name__ == '__main__' :

if len(sys.argv) < 2:
print 'Falta URL'
print 'Uso: pyget.py [URL]'
print '\nPara más información: "pyget.py --help"'
sys.exit()

elif sys.argv[1].startswith('--'):
option = sys.argv[1][2:]

if option == 'help':
print 'Este programa pretende emular el comando Unix "wget"'
print '\nUso: pyget.py [URL]'
print 'Opciones disponibles: '
print ' --about         : Sobre el autor'
print ' --help         : Muestra la ayuda'
print' --version : Imprime la versión del programa'

if option == 'version':
print 'Version 1.0'

if option == 'about':
print 'Pywget 1.0'
print 'Autor: Carlos Rogel Montecinos'
print 'Web: s1d4rt4.wordpress.com'
print 'Contacto: s1d4rt4@gmail.com'
print '\nSeptiembre 19 de 2006'

elif option != 'about' and option != 'help' and option != 'version':
print 'Opción desconocida'
sys.exit()

else:

path = os.getcwd()
url = sys.argv[1].split('/')[-1]

pyget(sys.argv[1],path+'/'+url)

increible la potencia del módulo urlib... k les parece?
3  Programación / Scripting / Re: almacenar archivos en python en: 19 Septiembre 2006, 17:54 pm
mmmmm si kieres almacenar y leer texto están las funciones built-in file, open, write, close, readline, etc. si son variables con datos para utilizarlos después, como valores de diccionarios, listas etc. (puede servir para configuración de programas) están los módulos Pickle(1) y cPickle(2) (el segundo, al estar escrito en c, es más rápido)

1- http://docs.python.org/lib/module-pickle.html
2- http://docs.python.org/lib/module-cPickle.html

ojalá sea eso ;D saludos!
4  Programación / Scripting / Re: una libreta de direcciones en python en: 30 Agosto 2006, 04:36 am
hahaha xD si lo habia pensado (o leído la sugerencia de byte of python), pero me da la impresión que quedaría muy cargado y poco intuitivo para un programa de consola
5  Programación / Scripting / una libreta de direcciones en python en: 30 Agosto 2006, 03:22 am
emmmm, eso,me leí algunos manuales (como el de la uji y el libro byte of python), y decidí escribir una libreta de direcciones de email para probar si había digerido el contenido o no... el programa funciona, no es gran cosa pero cumple su cometido.

Se los posteo para saber k opinan y si la forma en que lo escribí es la correcta o no, pork se me ocurren por lo menos 3 o 4 formas distintas de escribirlo

Código:
#!/usr/bin/python
# -*- coding: iso-8859-15 -*-

import cPickle as p

class AddressBook:

        email = {}
        inputt = ''
        archivo = 'ab.data'

        def __init__(self): # decidiendo si es necesario cargar o crear ab.data
                try:
                        f = file(AddressBook.archivo)
                        AddressBook.email = p.load(f)
                        f.close()
                except:
                        f = file(AddressBook.archivo,'w')
                        f.close()

                print '---------------------------------------'
                print ' AddressBook 1.0'
                print '---------------------------------------'

        def menu(self):
                while not ('a'<= AddressBook.inputt <='f'):
                        print 'a) Agregar contacto'
                        print 'b) Modificar Contacto'
                        print 'c) Eliminar contacto'
                        print 'd) Buscar contacto'
                        print 'e) Mostrar todos'
                        print 'f) Salir'
           
                        AddressBook.inputt = raw_input('ingrese una opción: ')
           
                        if not ('a'<= AddressBook.inputt <='f'):
                                print '---------------------------------------'
                                print 'La opción "%s" no es correcta' % AddressBook.inputt
                                print '---------------------------------------'

        def add(self): # agregar contacto
                contact = raw_input('Ingrese el nombre del contacto: ')
                email = raw_input('Ingrese email: ')
                AddressBook.email[contact] = email

                print '---------------------------------------'
                print '"%s" ha sido agregado(a)' % contact
                print '---------------------------------------'

                AddressBook.inputt = ''
       
        def modify(self): # modificar contacto
                contact = raw_input('Ingrese el contacto que desea modificar: ')

                if contact in AddressBook.email:
                        email = raw_input('ingrese el nuevo email: ')
                        AddressBook.email[contact] = email
                        print '---------------------------------------'
                        print '"%s" ha sido actualizado(a)' % contact
                        print '---------------------------------------'
                else:
                        print '---------------------------------------'
                        print '"%s" no existe' % contact
                        print '---------------------------------------'

                AddressBook.inputt = ''
       
        def delete(self): # eliminar contacto
                contact = raw_input('Ingrese el contacto que desea eliminar: ')

                if contact in AddressBook.email:
                        del AddressBook.email[contact]
                        print '---------------------------------------'
                        print '"%s" ha sido eliminado(a)' % contact
                        print '---------------------------------------'
                else:
                        print '---------------------------------------'
                        print '"%s" no existe(a)' % contact
                        print '---------------------------------------'
           
                AddressBook.inputt = ''

        def search(self): # buscar contacto
                contact = raw_input('Ingrese el nombre del contacto: ')

                if contact in AddressBook.email:
                        print '---------------------------------------'
                        print 'El email de %s es %s' % (contact, AddressBook.email[contact])
                        print '---------------------------------------'

                else:
                        print '---------------------------------------'
                        print '"%s" no existe' % contact
                        print '---------------------------------------'
           
                AddressBook.inputt = ''

        def view_all(self): # mostrar todos los contactos
                print '---------------------------------------'
                for name, email in AddressBook.email.items():
                        print 'El email de %s es %s' % (name,email)
                        print '---------------------------------------'


                AddressBook.inputt = ''

# programa principal
a = AddressBook()
a.menu()

while a.inputt != 'f':
        if a.inputt == 'a':
                a.add()
                a.menu()
   
        elif a.inputt == 'b':
                a.modify()
                a.menu()
   
        elif a.inputt == 'c':
                a.delete()
                a.menu()

        elif a.inputt == 'd':
                a.search()
                a.menu()
       
        elif a.inputt == 'e':
                a.view_all()
                a.menu()

if a.inputt == 'f': # guardar los emails en un archivo
        f = file(a.archivo,'w')
        p.dump(a.email,f)
        f.close()

eso pues =) espero sus comentarios... saludos!
6  Programación / Scripting / Re: Comandos DOS en Python en: 27 Julio 2006, 07:48 am
está interezante eso :o
7  Programación / Scripting / Re: Mail con Python en: 22 Julio 2006, 19:59 pm
cuando prueba con el smpt de gmail aparece esto

raise SMTPException("SMTP AUTH extension not supported by server.")
SMTPException: SMTP AUTH extension not supported by server.

problemas del servidor?
8  Programación / Scripting / Re: ayida con python =( en: 21 Julio 2006, 18:03 pm
jajajajaja paso a paso man ;D
9  Programación / Scripting / Re: ayida con python =( en: 20 Julio 2006, 22:28 pm
mmmmm osea k debía tratar los números como simples cadenas?

gracias a todos por ayudar a este novato ;D thx!
10  Programación / Scripting / Re: ayida con python =( en: 20 Julio 2006, 20:20 pm
naaaaaaaaaaa, eso significa una derrota... no me gustan las derrotas >:(
Páginas: [1] 2 3
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines