我正在尝试编写一个快速的小程序,该程序将通过CSV文件进行解析以提取用户名和密码,并测试登录到FTP以创建目录并使用这些用户名和密码将其删除。我已经编写了一个try catch,以便它可以输出出现的任何错误,以便我可以查看可能需要调整的FTP登录。问题是当我运行它时,如果任何登录中断而不是继续运行,它将停止。我尝试后尝试使用pass
和finally
,但它不会返回循环。任何帮助表示赞赏。
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
实际上,将代码放入finally
中并没有什么问题。尽管您已放置pass
语句,但它在此代码中没有任何作用。登录时出现错误,程序将记录错误,并仍然尝试为给定的连接创建一个文件夹。
相反,将cwd
,mkd
和其他方法移至try
块。如果在该处引发错误,则except
将捕获该错误并停止执行。