为什么不显示ValueError

2024-05-02 22:56:50 发布

您现在位置:Python中文网/ 问答频道 /正文

所以基本上我的代码是:

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

Tags: 代码innoneiflinecontentprocessfile