使用FTP忽略python中的异常

问题描述 投票:-1回答:1

我正在尝试编写一个快速的小程序,该程序将通过CSV文件进行解析以提取用户名和密码,并测试登录到FTP以创建目录并使用这些用户名和密码将其删除。我已经编写了一个try catch,以便它可以输出出现的任何错误,以便我可以查看可能需要调整的FTP登录。问题是当我运行它时,如果任何登录中断而不是继续运行,它将停止。我尝试后尝试使用passfinally,但它不会返回循环。任何帮助表示赞赏。

import csv
import ftplib
from ftplib import FTP
with open ('Filename.csv') as csvfile:  
    readCSV = csv.reader(csvfile, delimiter=',')
    lineCount = 0
    rowCount = 0
    for row in readCSV:
        username = row[rowCount]
        passwordFTP = row[rowCount+1]
        print (username)
        ftp = FTP('ftp.org') #place the FTP address here 
        ftp.set_debuglevel(2) #this is set to highest debug level 
        try: 
            ftp.login(user='usernameGoesHere', passwd='passwordGoesHere', acct='')
        except ftplib.all_errors as e:
            errorcode_string = str(e).split(None, 1)[0]
            pass
        finally: 
            ftp.cwd('/TestDir')
            ftp.mkd('testDir')
            ftp.rmd('testDir')
            ftp.quit()
            pass
python loops error-handling ftp
1个回答
0
投票

实际上,将代码放入finally中并没有什么问题。尽管您已放置pass语句,但它在此代码中没有任何作用。登录时出现错误,程序将记录错误,并仍然尝试为给定的连接创建一个文件夹。

相反,将cwdmkd和其他方法移至try块。如果在该处引发错误,则except将捕获该错误并停止执行。

© www.soinside.com 2019 - 2024. All rights reserved.