2010-07-12 12 views
7

Ich verwende ftplib, um Dateien zu übertragen. Alles funktioniert super. Jetzt versuche ich die Größe der Zieldatei vor dem Download zu bekommen.Python ftplib kann die Größe der Datei vor dem Download nicht bekommen?

  1. Zuerst versuchte ich nur Größe mit ftp.size (Dateiname) zu bekommen. Der Server hat sich beschwert, dass ich das im ASCII-Modus nicht machen kann.

  2. Dann habe ich versucht, Binärmodus 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.

Dank

Antwort

4

ftplib die Größe einer Datei vor dem Download erhalten können. Da die Dokumentation sagt:

FTP.size (Dateiname) Antrag der Größe die Datei mit dem Namen Dateinamen auf dem Server. Bei Erfolg wird die Dateigröße als Ganzzahl zurückgegeben, andernfalls wird zurückgegeben. Beachten Sie, dass die Größe Befehl nicht standardisiert ist, sondern nterstützte von vielen gemeinsamen Server Implementierungen

Anscheinend Ihr Server diese Funktion nicht unterstützen.

0

"Server beschwerte sich, dass ich das im Ascii-Modus nicht tun 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:

Dies zeigt an, dass der Server, mit dem ich verbunden war, einen SIZE-Befehl unterstützt.

17

Sehr späte Antwort, aber hier ist die richtige Antwort. Dies funktioniert mit ProFTPD.

ftp.sendcmd("TYPE i") # Switch to Binary mode 
ftp.size("/some/file") # Get size of file 
+2

Der Vollständigkeit halber: Um zurück zu ASCII zu wechseln, verwenden Sie 'TYPE A' – ezdazuzena

Verwandte Themen