Verzeichnis auf ftp server erstellen

Sockets, TCP/IP, (XML-)RPC und ähnliche Themen gehören in dieses Forum
Antworten
primat
User
Beiträge: 4
Registriert: Mittwoch 21. Juni 2006, 15:21

Hallo,
ich habe gerade angefangen Python zu lernen und wollte nun auf einem ftp server ein verzeichnis erstellen.
Das habe ich so gemacht:

Code: Alles auswählen

#! /usr/bin/python
import os
import sys, ftplib
from ftplib import FTP

f = FTP("ftp.bla.de")
f.login("user", "secret")
f.cwd("verz1")
a=f.pwd()
print a
wd=f.mkd("testverz")
f.cwd(wd)
b=f.pwd()
print b
f.quit()
Leider bricht das mit einem für mich unerklärlichen Fehler ab.
>./test.py
/verz1
Traceback (most recent call last):
File "./test.py", line 12, in ?
wd=f.mkd("testverz")
File "/usr/lib/python2.4/ftplib.py", line 510, in mkd
return parse257(resp)
File "/usr/lib/python2.4/ftplib.py", line 608, in parse257
raise error_reply, resp
ftplib.error_reply: 250 Directory created.
Das verzeichnis wird auch angelegt, das Skript bricht aber natürlich ab.
Kann mir vielleicht jemand sgen, wo der Fehler liegt?
Ich bin schon am verzweifeln. :cry:
Gruss
primat
Benutzeravatar
DatenMetzgerX
User
Beiträge: 398
Registriert: Freitag 28. April 2006, 06:28
Wohnort: Zürich Seebach (CH)

schon mal überprüft ob es das verzeichnis schon gibt?

Edit:// DAs Login könntest du zusammen nehmen mit dem Verbinden

Code: Alles auswählen

ftp = ftplib.FTP(server, user, passwort)
Halt ein Beispiel aus einem meiner programme ;)
primat
User
Beiträge: 4
Registriert: Mittwoch 21. Juni 2006, 15:21

Das Verzeichnis gibt es nicht (bei diesem Fehler). Ich habe es vorher gelöscht.
Es wird dann aber korrekt angelegt (durch das Skript)! Nur der Fehler ist halt doof, weil ich nicht weiter machen kann.
Gruss
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Kannst du das Skript auf einem anderen Server testen?
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
primat
User
Beiträge: 4
Registriert: Mittwoch 21. Juni 2006, 15:21

Muss mir mal nen ftp server zuhause draufklatschen. Mach ich gleich, wenn ich zuhause bin!
Gruss
Benutzeravatar
DatenMetzgerX
User
Beiträge: 398
Registriert: Freitag 28. April 2006, 06:28
Wohnort: Zürich Seebach (CH)

Das ganze macht keinen Sinn

http://www.the-eggman.com/seminars/ftp_error_codes.html

Nach dem ist "Error 250" eine bestätigung, das der Transfair IO war
murph
User
Beiträge: 622
Registriert: Freitag 14. April 2006, 19:23
Kontaktdaten:

so sieht die fehlermeldung auch aus!
das ist nur zur sicherheit, damit das hacken schwerer wird!
schon die fehlermeldung sagt, dass alles geklappt hat. musst dich damit anfinden oder nicht ftplib nehmen ;)
primat
User
Beiträge: 4
Registriert: Mittwoch 21. Juni 2006, 15:21

Hallo,
danke für die Antworten.
Ich würde mich ja gerne damit abfinden, aber mein Skript bricht durch den Fehler ab. Kann man das irgendie umgehen?
Gibt es eine Alternative zu pdflib (ich meine eine mit vertretbarem Aufwand :wink: ).
Woran liegt sowas? Am ftp Server? Das ist so ein Web Visitenkarte Account bei Strato.
Ick wees ja nich, aber det is doch komisch!
Grüße
primat
Benutzeravatar
Masaru
User
Beiträge: 425
Registriert: Mittwoch 4. August 2004, 22:17

Ich habe einen auch so einen kostenlosen FTP Account, jedoch bei einem anderen Anbieter, und dort funktionierte dein Script (sowohl unter Python 2.3.5 wie 2.4) ohne besagte Error Raises.

Falls der Fehler auch bei anderen FTP-Servern auftritt, würde ich nochmal vielleicht es mit einer neuen/anderen Python-Interpreter-Installation probieren.

>>Masa<<
Benutzeravatar
DatenMetzgerX
User
Beiträge: 398
Registriert: Freitag 28. April 2006, 06:28
Wohnort: Zürich Seebach (CH)

könnte so gehen ;)

Code: Alles auswählen

try:
    wd=f.mkd("testverz")
except FTP.error_reply, ex:
    print 'Diese Meldung wäre gekommen:\n' + str(ex)
Ob es geht weiss ich nicht, in der Schule habe ich keinen Python interpreter ;)

http://pydoc.org/1.6/ftplib.html
Johi
User
Beiträge: 22
Registriert: Sonntag 21. November 2004, 20:08

ich denke einfach mal, alle return codes von dem server werden "geraised" (also als fehler). damit man sie mit try abfangen kann. aber auch nur so nen gedanke?
Antworten