1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67
| #!/usr/bin/env python
# -*- coding: utf-8 *-*
import decimal
# Objet pour gérer une requête
class cRequete:
# Création de l'objet
def __init__(self, temps):
# Initialisation des cumuls
self.__cumul=[]
for t in temps:
self.__cumul.append({"key" : t, "tot" : 0})
# __init__()
# Récupération du cumul correspondant au temps demandé
def __getitem__(self, temps):
for c in self.__cumul:
if c["key"] == temps:
return c["tot"]
# for
# __getitem__()
# Ajout d'un temps à une requête
def add(self, temps):
temps=decimal.Decimal(temps)
mem=None
for c in self.__cumul[0:-1]:
if temps < decimal.Decimal(c["key"])\
and (mem == None or decimal.Decimal(c["key"]) < decimal.Decimal(mem["key"])):
mem=c
# if
# for
if mem == None: mem=self.__cumul[-1]
mem["tot"]+=1
# add()
# cRequete
# Initialisation tableau temps (tableau modifiable à loisir selon les besoins)
temps=("0.5", "5", "10", ">10")
# Initialisation requêtes
requete={}
# Traitement du fichier
fp=open("fichier", "r")
for line in fp:
# Découpage des items sur l'espace
item=line.split(" ")
# Vérification requête nouvelle
if item[0] not in requete.keys():
requete[item[0]]=cRequete(temps)
# Ajout du temps à la requête en cours
requete[item[0]].add(item[4])
# for
fp.close()
# Affichage des requêtes et de leurs temps
for (k, r) in requete.items():
txt="%s:" % k
for t in temps:
txt+=" [%s: %d]" % (t, r[t])
# for
print txt
# for |
Partager