Fehlermeldungen von ftplib abfangen?

Sockets, TCP/IP, (XML-)RPC und ähnliche Themen gehören in dieses Forum
Antworten
N17R0
User
Beiträge: 53
Registriert: Samstag 6. März 2004, 23:41

Hallo,
also folgendes Problem:
normaler Weise fängt man Fehlermeldungen ja mit 'try' & 'except' ab. das geht soweit auch bei der ftplib. Wenn man aber nur eine bestimmt Meldung abfangen will, geht das ja normaler Weise mit 'except ERRORNAME' und das funktioniert bei der ftplib irgendwie nicht.
Kleiner Auszug:

Code: Alles auswählen

>>> from ftplib import FTP
>>> conn = FTP('xxx.xxx.xxx.xxx')
>>> conn.login()
"230 User logged in. "
>>> conn.mkd('x')

Traceback (most recent call last):
  File "<pyshell#3>", line 1, in -toplevel-
    conn.mkd('x')
  File "C:\PROGRA~1\Python\Lib\ftplib.py", line 509, in mkd
    resp = self.sendcmd('MKD ' + dirname)
  File "C:\PROGRA~1\Python\Lib\ftplib.py", line 241, in sendcmd
    return self.getresp()
  File "C:\PROGRA~1\Python\Lib\ftplib.py", line 214, in getresp
    raise error_perm, resp
error_perm: 500 Command unrecognized or unimplemented.
>>> try:
	conn.mkd('x')
except error_perm:
	print 'Error'

	

Traceback (most recent call last):
  File "<pyshell#8>", line 3, in -toplevel-
    except error_perm:
NameError: name 'error_perm' is not defined
Mir geht es dabei ja eigentlich nur darum, dass er mir ausgibt, warum es nicht geht (Hier: 500 Command unrecognized or unimplemented.)

Weiß da jemand was?
Milan
User
Beiträge: 1078
Registriert: Mittwoch 16. Oktober 2002, 20:52

Hi. Es geht so wie du denkst, allerdings musst du auch den Fehler abfangen, der geworfen wird, bzw alle möglichen die aus der ftplib geworfen werden könnten. Da die geworfenen Fehler in der ftplib definiert sind (Docu :wink: ), gibst du sie so an:

Code: Alles auswählen

>>> try:
    conn.mkd('x')
except ftplib.all_errors, reason:
    print "Error: %s" % reason
N17R0
User
Beiträge: 53
Registriert: Samstag 6. März 2004, 23:41

Dankeschön :D
Antworten