Frage

Ich habe gegoogelt, aber ich konnte nur feststellen, wie eine Datei laden ... und ich versuche, alle Dateien aus lokalem Verzeichnis auf Remote-FTP-Verzeichnis zu laden. Irgendwelche Ideen, wie dies zu erreichen?

War es hilfreich?

Lösung

mit der Schleife?

Bearbeiten : in universal Fall des Hochladen von Dateien nur würde wie folgt aussehen:

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

Natürlich müssen Sie für Namenskollisionen achten, wenn Sie nur die Dateinamen wie diese zu erhalten.

Andere Tipps

Lesen Sie Python-scriptlines erforderlich Upload machen -Dateien von JSON-Call und neben ftplib-Betrieb: warum einige Uploads, aber andere nicht?

Obwohl eine unterschiedliche Ausgangsposition als Ihre Frage, in der Antwort diese ersten URL Sie sehen ein Beispiel Konstruktion zum Hochladen von ftplib JSON-Datei sowie eine XML-Datei: Blick auf scriptline 024 und weiter.

In der zweiten URL Sie einige andere Aspekte sehen im Zusammenhang von mehreren Dateien laden.

Auch für andere Dateitypen als json und xml, offenbar mit einem anderen ‚Eintrag‘ vor den zwei letzten Abschnitten, die die FTP_Upload-Funktion zu definieren und realisieren.

Erstellen Sie eine FTP-Batch-Datei (mit einer Liste von Dateien, die Sie übertragen müssen). Verwenden Sie Python ausführen ftp.exe mit dem „-s“ Option und übergeben Sie in der Liste der Dateien.

Dies ist kludgy aber anscheinend die ftplib nicht mehrere Dateien in seinem STOR Befehl akzeptieren.

Hier ist ein Beispiel FTP-Batch-Datei.

*

OPEN inetxxx 
myuser mypasswd 
binary 
prompt off 
cd ~/my_reg/cronjobs/k_load/incoming 
mput *.csv 
bye
  • Wenn die oben genannten Inhalte in einer Datei sind "abc.ftp" genannt - dann würde mein ftp-Befehl sein

    ftp es abc.ftp

Ich hoffe, das hilft.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top