从简历中提取过去的一年

时间:2017-11-01 11:04:22

标签: python

我写了一些逻辑来从简历中提取过去的一年。我使用学位列表的查找提取学位。

以下是文字和代码的链接 - https://github.com/karimkhanp/resumeparser

在CV中获得所有学位后,我会进行分割并检查每一行。如果任何行中存在任何学位,则检查在同一行中是否有以19或20开头的任何4位数字。考虑一年。

逻辑代码:

def get_passingyear(self, text, education):
    text_lines = text.splitlines()
    passing_year = []
    for line in text_lines:
        for degree in education:
            if degree in line:
                year = re.findall('\b(19|20)\d{2}\b', text)
                p_year = {}
                if len(year) > 1:
                    year = '-'.join(year)
                    p_year[degree]= year
                    break
                else:
                    p_year[degree]= year
                    break

有没有更好的方法来编写这段代码?如果获取学位的年份,我已添加break以退出循环。

我很欣赏它有相同的更好的逻辑

1 个答案:

答案 0 :(得分:0)

您可以使用EAFP原则并尝试使用datetime模块:

import datetime

....

        if degree in line:
            try:
                year = re.findall('\b(19|20)\d{2}\b', text)
                # Try to make a date out of it
                datetime.date(year=int(year))
            except TypeError:
                # if it is not a date, you can treat it here
                pass

            ....

这样你就不会冒险获得不是一年的东西 如果您的所有日期都在这些文件中隐藏了一个模式,您可以使用datetime module中的strptime来获取此模式中的日期