Извлечение нескольких дат начала и конца из строки в 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
См. пост для дробных диапазонов.