Autor Tópico: como upar vários arquivos de uma pasta usando o ftplib (Python)?[Resolvido]  (Lida 3728 vezes)

Offline Kamei Hyoga

  • Usuário Ubuntu
  • *
  • Mensagens: 1.095
  • Ubuntu 11.04
    • Ver perfil
Pessoal, estou tentando upar vários arquivos para uma pasta via FTP, mas não consigo.

Essa é a estrutura que estou usando:

Código: [Selecionar]
server = ftplib.FTP( servidor, login, senha)
        server.mkd(pasta_ftp)
        server.cwd(pasta_ftp)
        server.storlines('STOR, *.jpg')  # Aqui é onde ocorre o erro
        server.quit()

Alguém tem algum código com a solução, que eu possa estudar (se possivel com comentários para facilitar o aprendizado)

Abraço.
« Última modificação: 12 de Dezembro de 2010, 21:36 por Kamei Hyoga »

Offline Kamei Hyoga

  • Usuário Ubuntu
  • *
  • Mensagens: 1.095
  • Ubuntu 11.04
    • Ver perfil
Re: como upar vários arquivos de uma pasta usando o ftplib (Python)?
« Resposta #1 Online: 21 de Outubro de 2009, 15:41 »
Acreditam que estou até agora com a dúvida? hehe Claro que tinha deixado ela pra lá, mas agora estou voltando a programar umas coisas e preciso resolver isso.

Será que dando uma volta eu resolveria isso?

Estou pensando em listar todos os arquivos de uma pasta, redirecionando a saida em um arquivo. Depois disso eu crio um laço while que faz o upload de cada arquivo (lendo cada linha) até não ter mais nenhuma.

Minha lógica está correta?

Offline Kamei Hyoga

  • Usuário Ubuntu
  • *
  • Mensagens: 1.095
  • Ubuntu 11.04
    • Ver perfil
Re: como upar vários arquivos de uma pasta usando o ftplib (Python)?
« Resposta #2 Online: 21 de Outubro de 2009, 17:04 »
Ahaha finalmente achei a resposta!!

http://www.computerhope.com/forum/index.php?topic=79181.0

Código: [Selecionar]
from ftplib import FTP
import os
def upload(ftp, file):   ftp.storbinary("STOR " + file, open(file, "rb"), 1024)
os.chdir("localpath")
ftp = FTP('localhost')
ftp.set_debuglevel(3)  # <------------------------ set debugging mode.
try:
    ftp.login("user","pass")
except Exception, e:
    print "error ",e   #<---------------------------- this part will execute is login fails
else:
    for files in os.listdir("."):
        if os.path.isfile(files):
            upload(ftp,files)

Ainda gostei que está com o debug ativo.

A saga do ftplib terminou!! Hahaha
« Última modificação: 23 de Outubro de 2009, 03:21 por Kamei Hyoga »