Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python:检测ftplib-retrline上的conneciton丢失_Python_Exception_Ftp_Connection_Ftplib - Fatal编程技术网

python:检测ftplib-retrline上的conneciton丢失

python:检测ftplib-retrline上的conneciton丢失,python,exception,ftp,connection,ftplib,Python,Exception,Ftp,Connection,Ftplib,通过ftplib从不同目录下载大量文件。使用Retrline下载。下面的代码段是为循环中的100个文件调用的。fn指的是远程文件名 我正试图找到一种干净的方法来获取errno,这样,如果errno>400,我就可以恢复连接。我想我会从ftplib解析str(e)。所有的错误,但errno是不一致的。。。所以让hack来解析消息 我现在对例外情况的形式感到困惑。。。e应该是元组。。。但我发现我可以引用e.errno/e.strerror。由于FTP RETR错误(行>8192)是间歇性的。。。不确

通过ftplib从不同目录下载大量文件。使用Retrline下载。下面的代码段是为循环中的100个文件调用的。fn指的是远程文件名

我正试图找到一种干净的方法来获取errno,这样,如果errno>400,我就可以恢复连接。我想我会从ftplib解析str(e)。所有的错误,但errno是不一致的。。。所以让hack来解析消息

我现在对例外情况的形式感到困惑。。。e应该是元组。。。但我发现我可以引用e.errno/e.strerror。由于FTP RETR错误(行>8192)是间歇性的。。。不确定哪种方法是最好的,所以我决定发布这个问题。任何提示都会有帮助

   try:
        results = ftpID.retrlines("RETR " + fn, handler)
        return True
   except ftplib.all_errors as e:
        logging(str(cmd) + " (gettxt.ftp)"
                     +"FTP ERROR({0}): {1} on {2]".format(e.errno, e.strerror, fn))
        # Check for connection lost, line > 8192  -- connection is lost
        # Doc on ftp exception ftplib.all_errors is unclear about errno. messy
        # some str(e) does not give errno but others do?
        # OLD WAY: if str(e).find('8192') != -1 :
        if e.strerror.find('8192') != -1 :
            logging(" : Fatal FTP ERROR - connection lost")
            close()
            ftpID = None
        # try: self.ftpID.voidcmd("NOOP") ; exception: self.ftpID = None; return None
        return False
    except Exception as e:
        logging(str(cmd) + " (gettxt) " + str(e))
        return False
注:我知道文件: 并查看了10个例外帖子。。。对于异常的高级处理仍然不清楚