Pergunta

Eu pesquisei, mas eu só poderia encontrar como fazer upload de um arquivo ... e eu estou tentando fazer o upload de todos os arquivos do diretório local para o diretório de FTP remoto. Alguma idéia de como conseguir isso?

Foi útil?

Solução

com o loop?

Editar : no caso de envio universal apenas arquivos ficaria assim:

import os
for root, dirs, files in os.walk('path/to/local/dir'):
    for fname in files:
        full_fname = os.path.join(root, fname)
        ftp.storbinary('STOR remote/dir' + fname, open(full_fname, 'rb'))

Obviamente, você precisa de olhar para fora colisões de nomes se você está apenas preservando os nomes de arquivos como esta.

Outras dicas

python-scriptlines necessário para fazer upload de -limas de JSON-Call e próxima ftplib-operação: por que alguns envios, mas outros não?

Embora uma posição diferente de partida de sua pergunta, na Resposta desse primeiro URL que você veja um exemplo de construção para fazer o upload por ftplib um json-file, mais um arquivo xml: olhada scriptline 024 e ainda mais.

Na segunda url você vê alguns outros aspectos relacionados com o upload de mais arquivos.

Além disso aplicável a outros tipos de arquivos que JSON e XML, obviamente, com uma 'entrada' diferente antes das 2 últimas seções que definem e realizam a função FTP_Upload.

Criar um arquivo de lote FTP (com uma lista de arquivos que você precisa para transferência). Use python para executar ftp.exe com o "-s" opção e passar na lista de arquivos.

Esta é kludgy mas aparentemente o ftplib não tem aceitar múltiplos arquivos em seu comando STOR.

Aqui está um arquivo de lote ftp amostra.

*

OPEN inetxxx 
myuser mypasswd 
binary 
prompt off 
cd ~/my_reg/cronjobs/k_load/incoming 
mput *.csv 
bye
  • Se o conteúdo acima estavam em um arquivo chamado "abc.ftp" - então meu comando ftp seria

    ftp -s abc.ftp

Espero que ajude.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top