epespad

Hice un gestor de descargas usando Python y te lo muestro



Hola gente como estan? les quiero compartir informacion sobre algo que eh estado haciento durante el dia de hoy, un gestor de descarga sencillo elaborado en python.

Esto lo hago por que ando aprendiendo python, asi que me eh puesto la meta de desarrollar distintas aplicaciones de escritorio, comenzando con esta, el gestor de descargas:



Como ven es de interfaz sencilla, un campo para escribir la direccion donde se guardara, un campo para escribir la url, y un campo para ponerle un nombre al archivo descargado, un boton para iniciar la descarga y una barra de progreso de la descarga.

Hasta el momento solo eh probado descargar:
Imagenes: jpg, png
Paginas web: el html
videos: no descarga de youtube, y no se por que no me abre el video en linux, sin embargo en windows, o en el tv (mediante usb) si abre.


El archivo descargado



¿Como lo hice?



Bueno, iniciare diciendo que estoy usando Debian 8 (jessie), de 64 bits. esto ya que me ha parecido mucho mas comodo el desarrollo en linux, en windows es un poco mas lento y tedioso... oh y el escritorio xfce.

Uso git como controlador de versiones, sublime text 2 como editor de texto, terminator como terminal unix.

El lenguaje de programacion como ya dije es python, que es python?

Python es un lenguaje de programación poderoso y fácil de aprender. Cuenta con estructuras de datos eficientes y de alto nivel y un enfoque simple pero efectivo a la programación orientada a objetos. La elegante sintaxis de Python y su tipado dinámico, junto con su naturaleza interpretada, hacen de éste un lenguaje ideal para scripting y desarrollo rápido de aplicaciones en diversas áreas y sobre la mayoría de las plataformas.


Me tarde aproximadamente 10 horas en el desarrollo, mas que nada por que nunca había programado una gui en python, el script tiene 132 lineas de codigo, bastante corto la verdad, ya que eh hecho codigos de mas de 1000 lineas.



El GUI utilizado es Tkinter, junto a su libreria ttk, para poder crear la barra de progreso, esto debido a que tkinter es bastante basico y no tiene muchos widgets. Debo admitir que queria utilizar WxPython, pero me tarde un buen rato intentando instalarlo, hasta que lo mande al demonio y le di con tkinte.



Asi que bueno, no me arrepiento, fue bastante facil trabajar en tkinter, aunque claro, apenas hice algo muy basico de todo lo que hay. Creo que lo que mas me costo fue hacer esa barra de progreso. Para descargar utilice urlretrieve, de la libreria urllib, el tiempo de progreso fue gracias a la libreria time.

Claro aun tiene unos pequeños errores:


Ademas descarga mucho mas lento de lo que pensaba que descargaria (como 30% mas lento). Tampoco eh visto que sucede si se corta el internet, seguramente no se reanude la descarga. Pero, tratare de mejorarlo lo mas que pueda.

Espero que les haya gustado n_n

Si quieren el código fuente, den +10, reco, comentario y pasen MP

Si quieren tutorial de como lo hice, comentenlo n_n

Comentarios Destacados

batcavemasters +75
Estos pelotud*s que te deliran por haber copiado código de otro lado se hacen los ingenieros en sistemas y no saben que hasta los más capos usan cualquier motor de búsqueda para no andar reinventando la rueda, es más seguro que son los típicos expertos en hola mundos. Seguí googleando todo y leyendo el código, mientras entiendas que hace vas a progresar mucho más que estos giles que te critican.
marmoladonotdead +6
@SantiagoGabay tus viejos son primos o hermanos bobo?
gantz265 +1
asereHe +1
expertos en hola mundos jajajaj que hdp
pinchagarch +33
no lei un carajo ni tengo la mas minima idea de phyton pero +10 por postear algo propio y no pelotudeces de la trola de nordelta. salu2
therick96 +5
bueno, igual gracias por el +10

41 comentarios - Hice un gestor de descargas usando Python y te lo muestro

SantiagoGabay -25
mamadera pibe, no entendes un carajo..copiaste todo de google
therick96 +10
seguro, sin duda, es primera vez que programo una gui, asi que por algun sitio debia comenzar :T
franXPRO +2
@SantiagoGabay Sos alto resentido chabon. Por algun lado hay q empezar, dudo q vos hayas empezado programando facebook pelotudo. Si no te gusta lo que hizo andate del post y listo infeliz, ademas q es re contra mogolico gastar horas programando algo que podes ahorrar tiempo si otro ya hizo otras partes
Litecoin
Muy bueno no tengo puntos

nunca hice una gui tampoco en Py , Tkinter seria la mejor ?
therick96 +1
mmmmm nah, tkinter es la mas basica, diria que la mejor es wxpython, ya que ademas de que es la con mejor documentacion, tambien es portable entre windows, mac, linux
Tindyy +1
Aun mejor tenes PYQT, que es el framework QT de c++ pero adaptado para python.
Es muy bueno para crear programas con interfaz, tiene de todo.
SantiagoGabay -25
jaajaj 10 horas para 4 lineas de codigo? mamadera, estos retardados de hoy...ni siquiera lo hiciste bien
MaizCondensado -5
:v
Vinnu +4
¿Que significa "mamadera"?, solo los tipos de cerca de 50 años lo dicen
guachopario
@Vinnu El perfil dice que tiene 44 años, tan errado no estas.
x_tiende_a_cero +8
buena capo. pero antes de aprender otros lenguajes, primero aprende bien el español. +10
matjsote +9
No deberias decir que lo hiciste vos si copiaste el codigo de otras personas y solo lo remodelaste o le agregaste otra parte de codigo, eso no te hace programador, si queres aprender de verdad crea tu propio codigo
marmoladonotdead +2
cerra el culo tadinga.
-freakazoid- -2
no entendes nada, posta, deja de escribir pelotudeces. Si queres podes hacer tu propio codigo pero lleva mas tiempo, los mejores programadores utilizan otros codigos sabiendo lo que hace el codigo que estan reutilizando. Un buen programador no es el que codea un codigo, si no, el que reutiliza codigo.
matjsote
@-freakazoid- ya ta lei demasiada pelotudes en un mismo comentario
juanw200a -9
Python eso me hace pensar en otra cosa
FrancoGZS +9
juanw200a +2
@FrancoGZS me cagaron a negativos
aleixprod
Haciendo estas cosas aprendes mucho, dale para adelante si te gusta. Te dejo puntos.
matias6142 -2
porque usas un linux tan feo? cambia un poco el aspecto

te dejo +10 por el tiempo invertido
gdb123456 +1
alto bug el 161% que muestra. Yo me hice una red p2p como tp en la facultad, te reto a hacer lo mismo. Incluso me hice un cliente de "direct connect" que funcionaba conectandose a la red de dcplusplus como otro cliente mas, funcionaba y bajaba archivos, es solo cuestion de buscar la especificacion del protocolo y armarse algo que lo cumpla.
Gera_82 -1
Te felicito piton no me gusta yo programo en otro pero bue, son gustos van mis 10
Tindyy +4
No le des bola a los giles que dicen que copiaste el codigo.
se la dan de pija grande y todos en la vida comenzamos copiando el codigo, mas si primera vez que tocas un framework/libreria, lo que sea.
RuoskaPSP
+10 lince, empezare a trabajar con python e interfaz gráfica con un sistema embebido, BeagleBone Black con Debian
alestie
Muy buena ídolo. Creo que es la mejor manera de aprender. Haciendo pequeñas cosas, útiles, donde poner en marcha el nuevo conocimiento. No importa si ya está hecho o si te guiaste con Google o Youtube. Al contrario, es la manera obvia apoyándote con las nuevas herramientas que tenemos a disposición. Te mando un abrazo y te felicito.
yango18 +10
capo te doy un consejo como ingeniero en sistemas, tomalo o dejalo.

Me parece barbaro lo que hiciste, por algo se empieza, sea bueno o malo, funcional o no...

lo importante es que si copiaste codigo, es que entiendas como funca, no esta mal copiar codigo, sino entender. A diario se copia codigo, es mas, a medida que programes mas, vas a meterte seguro en muchos foros o stack overflow y vas a preguntar cosas y seguramente copies codigo de ellos.

El secreto es que entiendas lo que haces y porque lo haces de tal manera y despues a medida que te perfecciones vas a ver otras cosas mas alla de que sea funcional, por ejemplo su rendimiento, concurrencia, etc.

por algo se empieza esta bueno lo que hiciste, mi consejo es no lo dejes ahi y dale mas funcionalidad, ninguan herramienta salio al mercado siendo lo que es hoy, todas se van perfeccionando dia a dia.

y sobre todo, no le des bola a lo que te digan que esta bien o mal hace lo que te pinta y disfrutalo, si sirve o no, es el valor que vos le des y que a vos te satisfaga lo que haces.
2093030 +3
Best comment ever. Imprimí el comentario de @yango18 y empapela tu pieza con eso.
sam_aberto
Una pregunta... Sí desarrollo un proyecto sobre un ejemplo de stack pero al final no queda casi nada del original. Tengo que dar créditos? Por que en el "acerca de" le di créditos igual a pesar de que no quedaban ni 5 renglones del original...
yuki94 +4
si algo aprendi cursando programación, es que practicamente no existe alguien que no copie el codigo de otro, muchos los mejoran, otros lo personalizan, o solo copian y pegan. Asi que felicitaciones y esperando tus progresos..
PD: conozco un gestor en python, pyLoad, tal vez te sirva de referencia
datoseguro
Por algo se empieza, y creo q py tiene futuro, algun dia me pongo a hacer algun ejemplo de youtube para ver que tal
alfrecyber
Hermano porque Python? Para la programación desktop es malisimo, proba Java o C++, aunque te doy +5 porque traes un contenido interesante
alfrecyber
@identidadoculta Pero no me tomes a mal, me gusta Python, lo utilizo para web con Django, pero no me parece lo mejor para una app desktop
alfrecyber
@identidadoculta Pero no me tomes a mal, me gusta Python, lo utilizo para web con Django, pero no me parece lo mejor para una app desktop
identidadoculta
@alfrecyber sabes la cantidad de aplicaciones grosas desktop comerciales que hay hechas en python?
Vinnu
Yo nunca copié código pero sí tomé prestada la forma para que ejecute un programa.

Al fin y al cabo, hay algunas cosas que funcionan de una manera.

Ya sea que hagas la tabla de multiplicar, no te vas a privar de ir y buscar el código si el que hagas va a ser sumamente idéntico.
Vinnu +2
@-freakazoid- leí hasta "wtf"

Ponete a pensarlo. Lo más básico te doy para entender, a ver si lo podés procesar.

En un programa podes usar el for, pero también podes usar un while. El i=0 lo declaras en ambos, el incremento también. Diferentes maneras, pero todas llevan a algo que tiene el mismo fin. Hay maneras diferentes pero podés ver similitudes, y es por eso que ejecutan lo mismo.

Aflojale al ego
-freakazoid-
@Vinnu obvio que todo lleva al mismo fin, pero hay programadores que hacen 5 líneas máximo y otros 10, el razonamiento es distinto. Seguí poniendo iconitos dale. 5 años tenes.
Vinnu
@-freakazoid- "Seguí poniendo iconitos dale. 5 años tenes."
computadora


PD: Al final casi me diste la razón. Lo de cantidad de líneas es optimización pero utilizaremos similares metodologías que hagan lo mismo
black1233
+10! Subirias un post enseñando las bases necesarias para crear este tipo de cosas en phyton?
identidadoculta
Metele a wxpython. No hay con que darle y usa la gui del so. Que problema tuviste?
rebirhtmadara32 -2
Es bueno este lenguaje para empezar ? sin saber nada o muy poco ? y a que se refiere con, programación orientada a objetos?
nahuelpunk -1
Queres arrancar? comenzá aprendiendo a utilizar google
-freakazoid-
buena papu +10, yo ando arrancando en java, se codear en pascal pero es de la epoca de los neandentales, ahora estoy por metodos estaticos y de instancia entrando de apoco a O.O
Tiincho09 +2
+10 y reco por un programa de mierda??

Mira flaco, apoyo el laburo que hiciste y todo, pero en serio andas mendigando por 100 lineas de python?

Seguro me encuentro algo 1000 veces mejor en github.

Saludos2
Vinnu
Ratívoro.

¿Andás cobrando por el código fuente?

Si apenas te inicias y no sos un experto, no podes pretender eso. Yo lo que hago lo paso gratis
agustich
No leí nada, pero yo estoy estudiando programación y me están haciendo bosta, vos la tenés clara, te dejo un puntito.
matepore2
Que ganas de renegar xD
Python es muy buen lenguaje, pero para lo que es interfaz gráfica, uff. La mayoría que usa Python no pasa de los programas de consola (incluyéndome). Bien ahí por el programa, usas Python 2.7, no?
Buena suerte con el programita, +10.

PD: Odio Pygame.
lichyman123
Bien ahi papa. Yo termine un curso de python hace poco, el tema es que no me puse a practicar, pero es re interesante. Segui asi
Santtiavin
Hace tutorial, yo no entiendo nada, pero es contenido hecho por vos, +10 y fav
insertar_nick
buena papa, parece facil, no entendi una mierda, pero parece facil, empezare por aprender a programar en Python y espero llegar a hacer algo copado como esto, saludos
velikafraisse
bien capo, tomá tus puntos, dale para adelante y cogetelos a todos esta manga de infradotados del conourbano