Отредактировал весь ответ.Выполнение кода ниже:
with open("proposed.txt", "r") as inFile:
lines = [line for line in inFile]
with open("out.txt", "w") as outFile:
minuteTimes = []
IDs = []
newTimes = []
for line in lines:
content = line.split()
IDs.append(content[0])
time = content[1].split(":")
finalTime = int(time[0]) * 60 + int(time[1])
minuteTimes.append(finalTime)
#i = 0
newTime = minuteTimes[0] + 5
newTimes.append((IDs[0], minuteTimes[0], 0))
canGo = True
for i in range(1,len(minuteTimes)):
diff = minuteTimes[i] - minuteTimes[i-1]
newDiff = newTime - minuteTimes[i]
if diff == 5:
newTimes.append((IDs[i], minuteTimes[i], diff))
newTime = minuteTimes[i] + 5
elif diff < 5:
if newDiff > 15:
i += 1
else:
minuteTimes[i] = newTime
newTimes.append((IDs[i], minuteTimes[i], diff))
newTime = minuteTimes[i] + 5
else:
newTimes.append((IDs[i], minuteTimes[i], diff))
newTime = minuteTimes[i] + 5
for n in newTimes:
currentID = n[0]
minutes = str(n[1] // 60).zfill(2)
seconds = str(n[1] % 60).zfill(2)
outFile.write(currentID + " " + minutes + ":" + seconds + '\n')
даст вам желаемый результат:
TR898 09:05
JX965 09:10
RE741 09:15
FR898 09:20
TY471 09:25
GE896 09:30
TZ423 09:35
GT423 09:40
ZZSAQ 11:52