Ich verwende ftplib, um Dateien zu übertragen. Alles funktioniert super. Jetzt versuche ich die Größe der Zieldatei vor dem Download zu erhalten.
Zuerst habe ich nur versucht, Größe mit ftp.size (Dateiname) zu bekommen. Der Server hat sich beschwert, dass ich das nicht im ASCII-Modus machen kann.
Dann habe ich versucht, den binären Modus mit ftp.sendcmd ("binary") und ftp.sendcmd ("bin") zu setzen. In beiden Fällen beschwerte sich der Server "500 binär nicht verstanden"
Kann ftplib die Größe einer Datei vor dem Download in diesem Fall bekommen? Ich kontrolliere den FTP-Server nicht und kann nicht ändern, wie er sich verhält.
Danke
Ftplib kann die Größe einer Datei vor dem Herunterladen erhalten. Wie die Dokumentation sagt:
FTP.size (Dateiname) Fordern Sie die Größe von an die Datei Dateiname auf dem Server. Bei Erfolg ist die Größe der Datei als Integer zurückgegeben, andernfalls None ist zurück gekommen. Beachten Sie, dass die Größe Befehl ist nicht standardisiert, aber ist unterstützt von vielen gemeinsamen Server Implementierungen
Offenbar unterstützt Ihr Server diese Funktion nicht.
"Server hat sich beschwert, dass ich das im ASCII-Modus nicht machen kann." - Versuchen Sie, den genauen Code, den Sie verwendet haben, UND den genauen Text der Serverantwort anzuzeigen. Verwenden Sie Kopieren / Einfügen, nicht aus dem Speicher eingeben.
Haben Sie Zugriff auf einen FTP-Befehlszeilenclient? Wenn nicht, nimm einen. Verwenden Sie es, um mit dem zu experimentieren, was der Server tun kann. Ein Clientbefehl wie REMOTEHELP ist dein Freund. Beispiel:
%Vor%Dies zeigt an, dass der Server, mit dem ich verbunden war, einen SIZE-Befehl unterstützt.