use*_*219 2 python try-catch python-2.4
试图使该try/except语句起作用,但出现问题。此代码将获取一个txt文件,并将位置行0中的文件复制到行1中的位置。它可以工作,但是,如果我将其中一个路径更改为无效路径,则会生成错误,ftplib.error_perm但是except命令无法启动,并且一切正常停止。我究竟做错了什么?Python 2.4
import csv
import operator
import sys
import os
import shutil
import logging
import ftplib
import tldftp
def docopy(filename):
ftp = tldftp.dev()
inf = csv.reader(open(filename,'r'))
sortedlist = sorted(inf, key=operator.itemgetter(2), reverse=True)
for row in sortedlist:
src = row[0]
dst = row[1]
tldftp.textXfer(ftp, "RETR " + src, dst)
def hmm(haha):
result = docopy(haha);
try:
it = iter(result)
except ftplib.error_perm:
print "Error Getting File"
if __name__ == "__main__":
c = sys.argv[1]
if (c == ''):
raise Exception, "missing first parameter - row"
hmm(c)
Run Code Online (Sandbox Code Playgroud)
该except子句将仅捕获raise其相应try块内的d 异常。尝试将docopy函数调用也放入try块中:
def hmm(haha):
try:
result = docopy(haha)
it = iter(result)
except ftplib.error_perm:
print "Error Getting File"
Run Code Online (Sandbox Code Playgroud)