Синтаксический анализ универсальной строки, хранящей день и время
Мне нужно сгенерировать функцию, которая находит сотрудника, свободного для встречи, на основе следующих данных. Если я пройду допустимое время, то должен вернуться обратно тот, кто свободен в течение этого часа.
1234 Mon-Tue 09:30 am - 1:00 pm 2345 Mon-Thu 1:00 pm - 3:00 pm , Fri 10:30 am - 3:00 pm 456 Mon-Wed 9:00 am - 9:30 am , Tue 10:00 am - 3:00 pm , Fri 10:00 am - 2:00 pm
Мне нужно разделить второе значение, то есть свободное время, и проверить, свободен ли пользователь.
Моя задача заключается в том, как разбить полуструктурированные данные на список и найти нужное значение.
Спасибо,
Что я уже пробовал:
Вот что я попробовал.
# Мои данные в файле myfile. csv
"""
пользователь1 Пн-Вт 11: 30 - 1: 00
user2 Пн-Чт 2: 00 pm - 3 : 00 pm, Пт 11: 30 am - 4: 00 pm
пользователь3 пн-ср 9:00 утра - 9:30 утра , Вт 10:00 утра - 3:00 , Пт 10:00 утра - 2:00 вечера
пользователь4 Пн 10:00 утра - 10:30 утра , Вт 1:00 вечера - 3:00 , пт с 9:00 - 10:00 утра
user5 Пт 11: 00 - 11: 30
user6 Пн-Пт 9: 00 утра - 4: 30 вечера
user7 Пн-Ср 10: 30 - 11 : 30, Вт 11: 30 - 3 : 00, Пт 10: 00 - 2: 00
user8 Пн 10: 30 - 11 : 30, Вт 10: 00 - 3 : 00, пт 11: 00 - 2: 00
user9 пн-ср 9: 00 - 9: 30, Вт 10: 00 - 3 : 00, Пт 10: 00 - 2: 00
user10 Вт-Ср 10: 00-11: 30, пт 10: 00 - 2: 00
user11 Ср 11: 00-3: 30 вечера, Пт 11: 00 - 2: 00 вечера
user12 Пн 9: 00 - 3: 30 вечера, Пт 11: 00-2: 00 вечера
user13 Пт 11: 00-3: 30 вечера
user14 Wed 12: 00 am - 12: 30 pm
user16 Пт 10: 00 утра - 12: 00 вечера
"""
import csv import re userid = [] dates = [] num = [] let = [] pattern = re.compile(r'\b([A-Z][a-z]{2})\s*((-)\s*([A-Z][a-z]{2}))?\s*(\d?\d:\d\d *[aApP][Mm])') with open('myfile.csv') as csvDataFile: csvReader = csv.reader(csvDataFile) for row in csvReader: userid.append(row[0]) list_val = [item.strip() for item in row[1].split(',')] dates.append(list_val) print dates, list_val a = filter(pattern.match,dates) print str(a) for (letters, numbers) in filter(pattern.match,dates): num.append(numbers) let.append(letters) print(numbers, '*', letters)
PIEBALDconsult
Разделение забот - Не пытайтесь связать оба действия в одно.