Red de conocimiento informático - Problemas con los teléfonos móviles - El lenguaje Python escanea registros y cuenta

El lenguaje Python escanea registros y cuenta

Se corrigieron algunos errores tipográficos menores

Se corrigió un error por el cual las filas de datos no válidos causaban un error

Se corrigió un error en el método de estadísticas mínimas

==== == ============= Aquí está log.py========

# -*- codificación. cp936 -*-

# ¡La frase anterior no debe eliminarse! Indica que la ruta china está codificada en GBK

import?datetime

# Módulo para el tiempo de procesamiento

def?sparse(target='log.txt'): tgfile = file(target, "r") event={} # el evento es un diccionario, la clave es el número del evento, el valor son los datos (se puede usar el anidamiento para expandir los datos) linelog = "No está vacío" mientras? linelog:

linelog = tgfile.readline()

data = linelog.split('?')

#Dividir una línea de datos en una lista por espacios

# print?data #testing

if?len(data) gt; 4: #fila de datos válida time1 = data] #Establezco el valor en una lista donde se encuentra cada elemento es una vez Registros sexuales, incluido) #Si ya existe un registro, agregue un nuevo registro después del registro if?data[5] ==="end:"?and?data[6][:2] ===" OK":

# Creo que no hay evento que termine sin comienzo, ¿verdad? ......

evento[datos[0]][-1][0]=0 #Se escribe el último registro: el evento ha finalizado

evento[datos [0]][-1][2]=time2 #Se escribe el último registro: la hora de finalización del registro #Si hay otro contenido que debe procesarse, agregue si el juicio aquí tgfile.close() regresa. event

def?analysis(target='log.txt'): event = sparse(target) #Llame al método disperso dispuesto anteriormente.

Para un procesamiento simple, realmente no hay necesidad de hacer esto... puramente por escalabilidad static = {} #Diccionario usado para resultados estadísticos (sus palabras clave son las mismas que las del evento) for? >

#Cada registro de evento

static[oneevent]=[0, 0, 0, 0, 0, -1]

#Inicializa las estadísticas de cada evento: [número de ocurrencias exitosas, número total de ocurrencias, tiempo total de ocurrencia, tiempo máximo de ocurrencia, tiempo mínimo de ocurrencia]

for?onerecord?in?event[oneevent]: #Cada evento Un registro estático[oneevent][0] = 1 #El número total de ocurrencias más uno si onerecord[0] == 0: #Eventos exitosos

static[oneevent][1] = 1

time_ delta = onerecord[ 2] - onerecord[1]

# El resultado del cálculo es tipo timedelta

inttimedelta = time_delta.days *24*60*60 time_delta.

#Convert time_delta a un número entero en segundos

if inttimedelta gt; static[oneevent][3]: static[oneevent][3] = inttimedelta #Valor estadístico máximo

if inttimedelta lt; [oneevent][4] o static[oneevent][4] lt; 0: static[oneevent][4] = inttimedelta #Valor mínimo estadístico

static[oneevent ][2] = inttimedelta return static

==================== debajo de log.txt============

# 1?0.0.0.0?[2007-06-12?23:27:08]?solicitud?begin:?OK?

#3?0.0.0.0?[2007 -06-12?23: 28:08]?request?begin:?fail

#1?0.0.0.0?[2007-06-12?23:37:08]?request?begin: ?OK?

#1?0.0.0.0?[2007-06-12?23:37:08]?solicitud?comenzar:?¿OK?

#1?2007- 06-12?23:37 :18]?solicitud?de?datos:?OK

#1?0.0.0.0?[2007-06-12?23:37:19]?recibió ?algunos?datos:?OK

#1?0.0.0.0?[2007-06-13? ?00:27:08]?request?end:?OK?

#2?0.0.0.0? [2007-06-13?00:37:08]?solicitud?begin:?OK

#2?0.0.0.0?[2007-06-13?00: 47:08]?solicitud? es

d:?OK?

¿sistema?ERROR?:reiniciar

Otra línea no válida

#1?0.0.0.0?[2007-06-13?23 :28:18]?solicitud?comenzar:?¿OK?

#7?0.0.0.0?[2007-06-13?23:28:18]?

#7 ?0.0.0.0?[2007-06-13?23:29:08]?solicitud?comenzar:?OK?

#7?0.0.0.0?[2007-06-13?23:30 :18]?request?end:?OK?

#4?0.0.0.0?[2007-06-13?23:30:18]?request?end:?OK?

#4?2007-06-13?23:33:08]?solicitud?comenzar:?¿OK?

#4?0.0.0.0?[2007-06-13?23:35 :23]?request?end:?OK?

#4?0.0.0.0?[2007-06-13?23:37:08]?request?begin:?OK?

#4?0.0.0.0?[2007-06-13?23:43:38]?solicitud?end:?OK?

#5?0.0.0.0?[2007-06- 13?23:47:08]?request?begin:?OK?

#1?0.0.0.0?[2007-06-13?23:57:48]?request?begin:?OK ?

#5?0.0.0.0?[2007-06-13?23:59:08]?request?end:?OK?

======= ============ El siguiente es el uso y la salida de ========

import?log

output = log.analysis ()

#o simplemente log.analysis()

============== salida = ========== =

{'#2': [1, 1, 600, 600, 600], '#1': [4, 1, 3000, 3000, 3000], '#7': [1 , 1, 70, 70, 70], '#5': [1, 1, 720, 720, 720], '#4': [2, 2, 525, 390.135]}

Decir Evento #1, el número total de veces que se genera['#1'][0]==4

El número de éxitos que se genera['#1'][1]=1

El número de fallas de salida['# 1'][0]-Salida['#1'][1]=3

Tiempo total de salida['#1'][2]== 3000 segundos

Tiempo promedio de salida['#1'][2]/salida['#1'][1]==3000/1=3000 segundos

Tiempo máximo salida['#1'][3] ==3000 segundos

Tiempo mínimo de salida['#1'][4]==3000 segundos

****Hay len(salida)==5 eventos de ID