0
0 Комментариев

Подскажите как сделать нормальный вывод

from datetime import datetime
import pandas as pd
with open('log.txt', 'r') as all:
    list_line = all.read().splitlines()
    t = []
    stran = []
    errors = 0
for line in list_line:
    b = line.split(' | ')
    time = datetime.strptime(b[1], "%d.%m.%Y %H:%M:%S") - datetime.strptime(b[0], "%d.%m.%Y %H:%M:%S")
    t[len(t):] = [time]
    if (int(b[3]) > 400) or (b[4].find('error') != -1): errors = errors + 1
    stran.append(b[2])
 
print('Максимальное значение: ' + str(max(t)))
print('Минимальное значение: ' + str(min(t)))
p = pd.DataFrame(pd.to_timedelta(t))
print('Медиана: ' + str(p.median()))
print('Среднее значение: ' + str(p.mean()))
print('Количесто ошибок: ' + str(errors))
 
stran_d = {}.fromkeys(stran, 0)
for a in stran:
    stran_d[a] += 1
print(stran_d)

На входе файл примерно с таким содержание

24.05.2015 14:05:06 | 24.05.2015 14:07:08 | q.com/index.html | 404 | тело_ответа
24.05.2015 14:05:30 | 24.05.2015 14:07:30 | q.com/index.html | 200 | тело_ответа
24.05.2015 14:06:08 | 24.05.2015 14:07:56 | ya.ru/index.html | 200 | тело_ответа
24.05.2015 14:07:06 | 24.05.2015 14:08:01 | google.com/index.html | 404 | error
24.05.2015 14:10:15 | 24.05.2015 14:11:08 | google.com/index.html | 303 | error

Получается такой результат

Максимальное значение: 0:02:02
Минимальное значение: 0:00:53
Медиана: 0   00:01:48
dtype: timedelta64[ns]
Среднее значение: 0   00:01:31.600000
dtype: timedelta64[ns]
Количесто ошибок: 3
{'q.com/index.html': 2, 'ya.ru/index.html': 1, 'google.com/index.html': 2}

Как в выводе убрать лишнее оставить только ‘Медина: 00:01:48’ ?


Добавить комментарий