Python错误捕获&;文件传输协议

Python错误捕获&;文件传输协议,python,ftp,Python,Ftp,正在尝试获取Python中FTP库的句柄。:) 到目前为止 from ftplib import FTP server = '127.0.0.1' port = '57422' print 'FTP Client (' + server + ') port: ' + port try: ftp = FTP() ftp.connect(server, port, 3) print 'Connected! Welcome msg is \"' + ftp.getwelc

正在尝试获取Python中FTP库的句柄。:)

到目前为止

from ftplib import FTP

server = '127.0.0.1'
port = '57422'

print 'FTP Client (' + server + ') port: ' + port

try:
    ftp = FTP()
    ftp.connect(server, port, 3)
    print 'Connected! Welcome msg is \"' + ftp.getwelcome() + '\"'

    ftp.cwd('\\')

    x = '1'
    currentDir = ''

except: //***What do I put here?***
说有几个错误代码我可以捕捉,但我做不到

除了:ftplib.all_错误

第二个问题:P 如何检索有关错误的更具体信息?也许是错误代码

非常熟悉python(大约一个小时)。

您编写

except Exception, e:  #you can specify type of Exception also
   print str(e)

除非必须,否则不要尝试捕获异常类。异常是一个catch all,而不是catch正在抛出的特定类socket.error

  import ftplib
  import socket <--

  server = '127.0.0.1'
  port = '57422'

  print 'FTP Client (' + server + ') port: ' + port

  ftp = ftplib.FTP()
  try:
    ftp.connect(server, port, 3)
    print 'Connected! Welcome msg is \"' + ftp.getwelcome() + '\"'

    ftp.cwd('\\')

    x = '1'
    currentDir = ''
  except socket.error,e: <--
    print 'unable to connect!,%s'%e
导入ftplib
导入套接字
我做不到

当然不是,那只是糟糕的语法!但当然,您可以使用适当的语法:

except ftplib.all_errors:
i、 例如,异常元组后的冒号

如何检索更具体的 关于错误的信息?也许是 错误代码

例如,
'530'
现在将是完整错误消息为
'530登录验证失败'
时的
errorcode\u字符串的值


您可以在中找到异常的其余部分。

名称“ftplib”在我尝试您建议的方法时没有定义(最初的错误是输入错误),目前还不确定要做什么。我以为我已经导入了“名称空间”。@bobber,不,你需要添加一个
import-ftplib
语句。您没有导入模块——您只是从模块内部导入了一个类(我个人讨厌这种做法,但这是另一个问题);因此,要访问限定名称,例如
ftplib.all_errors
,您还需要
导入ftplib
。这太通用了,
除了ftblib。all_errors
是一个更正确的答案,同时仍然覆盖所有ftp错误
except ftplib.all_errors:
except ftplib.all_errors as e:
  errorcode_string = str(e).split(None, 1)[0]