Извлечение нескольких дат начала и конца из строки в python?

Я делаю парсер резюме, но я хочу знать годы опыта человека из раздела опыта и хочу получить результаты, например, если есть 3 года опыта упоминается и есть 3 компании, в которых человек работал в эти 3 года и есть начальная и конечная дата упоминается на всех из них так есть ли способ узнать это начальная дата и это конечная дата, а также могу ли я вычислить общее количество лет опыта, упомянутых в разделе опыта путем добавления всех этих диапазонов.

Поле примера

Опыт

AI и Machine learning Intern, Dawn DigiTech (04/2022 - настоящее время), ❖, Эта компания цифровым образом трансформирует многочисленные фронт- и бэк-офисные бизнес, процессы, SCM, ERP и Manufacturing Excellence .., -, SpiceJet(08/2020 - 10/2021), ❖, Ведущая индийская авиакомпания работала и развивала 30%, Machine learning Intern, TutorBin(02/2022 - 05/2022 ), ❖, Tutorbin - интегрированная платформа онлайн-репетиторства, служащая единым решением для студентов и онлайн-репетиторов. работа над Ai и Machine learning, задачи, предоставленные клиентом, 60%,

.

Это разобранный раздел опыта, поэтому в нем я хочу извлечь диапазоны дат, которые должны знать дату начала и дату окончания, а также вернуть общий опыт, который упоминается как :

    start date      end date
    (04/2022   -     present)    =  2 months
    (08/2020   -     10/2021)    =  1 year 2months
   (02/2022    -     04/2022)    =  2 months
Total experience  =  1 year 6 months

Итак, есть ли способ получить этот вывод в общем количестве лет опыта и узнать в диапазоне дат, какая дата является начальной, а какая конечной?

Заранее спасибо.

это один из способов сделать это, но это может быть и в дробях.

from datetime import datetime
from dateutil.relativedelta import relativedelta

def year_delta(date_1, date_2):
    start_day = '01'
    end_day = '30'
    date_1 = f'{start_day}/08/2020'
    date_2 = f'{end_day}/10/2021'
    date_1=datetime.strptime(date_1, '%d/%m/%Y').date()
    date_2=datetime.strptime(date_2, '%d/%m/%Y').date()
    return relativedelta(date_2, date_1).years

См. пост для дробных диапазонов.

Вернуться на верх