Программа учета рабочего времени на питоне

Для моего вступления в класс Python я должен:

Создайте программу "табель рабочего времени", которая считывает файлы журнала, созданные вашей программой часов из проекта 4, и добавляет отработанные часы в файл базы данных заработной платы. Ваша программа должна использовать идентификаторы пользователей в качестве первичного ключа для базы данных (первый элемент данных в каждой строке), а затем перечислять дату и продолжительность каждой смены, в которой работает сотрудник (по одной смене на строку).

У меня отлично работают часы, я просто не знаю, как заставить Python оценивать время. Это вывод программы часов в файл.

ClockIN EmpleyeeNumber: 1234566 ClockTime: 08:54:44 ClockDate: 12/07/2016 
ClockOUT EmpleyeeNumber: 1234566 ClockTime: 08:55:20 ClockDate: 12/07/2016
ClockIN EmpleyeeNumber: 1234567 ClockTime: 09:14:50 ClockDate: 12/07/2016 
ClockOUT EmpleyeeNumber: 1234567 ClockTime: 09:15:02 ClockDate: 12/07/2016 

1 ответ

from datetime import datetime

filename = 'input.txt'
with open(filename, 'r') as file:
    with open('timeSheet.txt', 'a') as f:
        lines = file.readlines()
        datas = []
        for line in lines:
            class_in_out, _, id, _, time, _, date = line.strip().split(" ")
            exist = False
            for data in datas:
                if data['id'] == id:
                    exists_date = False
                    for date_ in data['date']:
                        if date in date_:
                            date_[date][class_in_out] = time
                            exists_date = True
                            break
                    if not exists_date:
                        data['date'].append({date: {class_in_out: time}})
                    exist = True
                    break
            if not exist:
                data = {'id': id, 'date': [{date: {class_in_out: time}}]}
                datas.append(data)

        outputs = []
        for data in datas:
            output = {'id': data['id'], 'date': []}
            values = data['date']
            for value in values:
                for key in value:
                    start = value[key]['ClockIN']
                    stop = value[key]['ClockOUT']
                    date_start = datetime.strptime(start, '%H:%M:%S')
                    date_stop = datetime.strptime(stop, '%H:%M:%S')
                    delta = date_stop - date_start
                    output['date'].append({key: str(delta)})
            outputs.append(output)
        for output in outputs:
            print(output)
            f.write('{id: ' + output['id'])
            f.write(', date: ' + str(output['date']))
            f.write("}\n")
        f.close()

Input.txt:

ClockIN EmpleyeeNumber: 1234566 ClockTime: 08:54:44 ClockDate: 12/07/2016
ClockOUT EmpleyeeNumber: 1234566 ClockTime: 08:55:20 ClockDate: 12/07/2016
ClockIN EmpleyeeNumber: 1234567 ClockTime: 09:14:50 ClockDate: 12/07/2016
ClockOUT EmpleyeeNumber: 1234567 ClockTime: 09:15:02 ClockDate: 12/07/2016
ClockIN EmpleyeeNumber: 1234566 ClockTime: 08:54:42 ClockDate: 13/07/2016
ClockOUT EmpleyeeNumber: 1234566 ClockTime: 08:55:02 ClockDate: 13/07/2016
ClockIN EmpleyeeNumber: 1234567 ClockTime: 09:14:51 ClockDate: 13/07/2016
ClockOUT EmpleyeeNumber: 1234567 ClockTime: 09:15:06 ClockDate: 13/07/2016

timeSheet.txt:

{id: 1234566, date: [{'12/07/2016': '0:00:36'}, {'13/07/2016': '0:00:20'}]}
{id: 1234567, date: [{'12/07/2016': '0:00:12'}, {'13/07/2016': '0:00:15'}]}
Другие вопросы по тегам