所以基本上我的代码是:
def process_contacts(contacts_file):
f = None
sections = []
ret_dic = {}
try:
f = open(contacts_file, 'r')
content = f.readlines()
for line in content:
if "#" in line:
continue
line = line.rstrip("\n")
sections = line.split(',') # section = categories of information on origin file
if sections[1] == '' or len(sections) != 4:
raise ValueError('Invalid input file')
if sections[3] in ret_dic:
if sections[1] not in ret_dic[sections[3]]:
ret_dic[sections[3]].append(sections[1])
else:
ret_dic[sections[3]] = [sections[1]]
except IOError:
print 'Cannot process due to an IO error'
except ValueError:
raise ValueError('Invalid input file')
finally:
if f != None:
f.close()
if sections != []:
return ret_dic
我在筹集资金方面有问题。我需要ValueError
作为一个错误被提出,但我的代码只是跳过它,我不明白为什么,我搜索了整个互联网关于它,但也许我只是没有得到它。
无论如何,我打开的csv文件是:
Avi,Levi,Kushnir 7,Jerusalem
Moshe,,Hamakabim 4,Tel Aviv
Michael,Cohen,Herzel 70
Eli,Cohen,Haroe 6,Jerusalem
Moti,Cohen,shalom 5,Tel Aviv
这是因为你的
finally
块。你在except
中raise
你的ValueError
,然后说“哦,没关系”,最后用finally
结束。finally
如果遇到错误,总是最后运行的块。你知道吗相关问题 更多 >
编程相关推荐