Download de arquivo via Python

1,419 views
Skip to first unread message

Paulo Junior

unread,
Jan 13, 2015, 10:23:05 PM1/13/15
to python...@googlegroups.com
Olá pessoal, estou criando um sistema de update de arquivos com o Gtk e o Urllib, mas estou com um problema com o urllib para baixar os arquivos.
Estou tentando com outras bibliotecas tipo Wget mas ocorre o mesmo problema, o erro é o seguinte:

from urllib import request 

def clearName(name):
    clear = ["file:///","http://","https://"]
    text = name
    extension = ""
    find = False
    
    for cl in clear:
        print(text.find(cl))
        if text.find(cl) > 0:
            text = text.replace(cl, "")

    for i in range(len(text)):
        if text[i] == '.':
            if not find:
                find = True
            else:
                extension = ""
        if find:
            extension += text[i]

    text = text.replace(extension, "")
    text = text.split("/")[-1]
    return text, extension

def downloadFile(url):
   name, extension = clearName(url)
   print("%s Downloading..." % name)
   d = request.urlretrieve(url , name + extension)
   print("%s Downloaded" % name)

Files = [
"file:///C:/Test/Arquivo.jpg",
"file:///C:/Test/Arquivo2.jpg",
"file:///C:/Test/Arquivo3.png.o.jpg"]

for arq in Files:
   downloadFile(arq)

Esse código acima está funcionando, mas o problemas está com essa linha: "d = request.urlretrieve(url , name + extension)";
Eu queria mostrar o Progresso da Download com o ProgressBar do Gtk, porque quando eu executo essa linha acima, todo o Programa trava só volta quando o download termina.
Esse é o problema eu queria que o programa mostra-se o download sendo feito.

Obrigado pela atenção.

Jayme

unread,
Jan 14, 2015, 6:20:08 AM1/14/15
to python...@googlegroups.com
Tem este código aqui que mostra no terminal o progresso do download em porcentagem.
Deve dar pra adaptar pro seu caso: http://stackoverflow.com/a/22776/311829


--
--
------------------------------------
Grupo Python-Brasil
http://www.python.org.br/wiki/AntesDePerguntar
 
<*> Para visitar o site do grupo na web, acesse:
http://groups.google.com/group/python-brasil
 
<*> Para sair deste grupo, envie um e-mail para:
python-brasi...@googlegroups.com

---
Você recebeu essa mensagem porque está inscrito no grupo "Python Brasil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para python-brasi...@googlegroups.com.
Para mais opções, acesse https://groups.google.com/d/optout.

Welton Vaz

unread,
Jan 14, 2015, 8:56:07 AM1/14/15
to python...@googlegroups.com
Amigos,

Quando preciso de algo deste tipo eu uso pelo shell, usando estes exemplos: https://code.google.com/p/python-progressbar/

--

Welton Vaz de Souza
TWITTER: http://twitter.com/Weltonvaz
BLOG: http://ghandybh.blogspot.com/
FACEBOOK: https://www.facebook.com/weltonv
Cel: (31)9327-0823



Bonito é melhor que feio.
Explícito é melhor que implícito.
Simples é melhor que complexo.
Complexo é melhor que complicado.
Plano é melhor que aninhado.
Esparso é melhor que denso.
Legibilidade conta.
Casos especiais não são especiais o bastante para se quebrar as regras.
Embora a simplicidade supere o purismo.
Erros nunca deveriam passar silenciosamente.
A menos que explicitamente silenciados.
Ao encarar a ambiguidade, recuse a tentação de adivinhar.
Deveria haver uma – e preferencialmente apenas uma – maneira óbvia de se fazer isto.
Embora aquela maneira possa não ser óbvia à primeira vista se você não for holandês.
Agora é melhor que nunca.
Embora nunca, seja muitas vezes melhor que pra .
Se a implementação é difícil de explicar, é uma má idéia.
Se a implementação é fácil de explicar, pode ser uma boa idéia.
Namespaces são uma idéia estupenda – vamos fazer mais deles!
***********************************************************

 °v° NÃO USE DROGAS,
/(_)\ USE GNU/LINUX
 ^ ^
Reply all
Reply to author
Forward
0 new messages