Domanda

Ho cercato su Google ma sono riuscito a trovare solo come caricare un file...e sto provando a caricare tutti i file dalla directory locale alla directory ftp remota.Qualche idea su come raggiungere questo obiettivo?

È stato utile?

Soluzione

con il ciclo?

modifica : in caso universale caricando solo i file sarebbe simile a questa:

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'))

Ovviamente, è necessario guardare fuori per conflitti di nomi, se si sta solo conservare i nomi di file come questo.

Altri suggerimenti

Guarda a Linee di script Python necessarie per caricare file da JSON-Call e poi Operazione FTPlib:perché alcuni vengono caricati e altri no?

Sebbene una posizione di partenza diversa rispetto alla tua domanda, nel Risposta di quel primo URL vedi una costruzione di esempio per caricare tramite ftplib un file json più un file xml:guarda la scriptline 024 e oltre.

Nel secondo URL vedi alcuni altri aspetti relativi al caricamento di più file.

Applicabile anche per tipi di file diversi da json e xml, ovviamente con una "voce" diversa prima delle 2 sezioni finali che definiscono e realizzano la funzione FTP_Upload.

Creare un file batch FTP (con un elenco di file che è necessario per il trasferimento). Usare Python per eseguire ftp.exe con l'opzione "-s" e passare nella lista dei file.

Questa è kludgy ma a quanto pare la ftplib non ha accetta più file in suo comando STOR.

Ecco un file batch di esempio ftp.

*

OPEN inetxxx 
myuser mypasswd 
binary 
prompt off 
cd ~/my_reg/cronjobs/k_load/incoming 
mput *.csv 
bye
  • Se il contenuto di cui sopra erano in un file chiamato "abc.ftp" - poi il mio comando ftp sarebbe

    ftp -s abc.ftp

La speranza che aiuta.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top