Программа учета рабочего времени на питоне
Для моего вступления в класс 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'}]}