Untitled

 avatar
unknown
plain_text
3 years ago
3.9 kB
4
Indexable
import os

D={}
fascia1 = 0
fascia2 = 0
fascia3 = 0

files = os.listdir(r"/home/marco/Scrivania/file_test_ise/registri_chiamate/.")
for file in files:
    lista = file.split("-")
    D[lista[0]] = D.get(lista[0],[]) + [lista[1]]
for chiave in sorted(D):
        for mese in sorted(D[chiave]):
            nomeFile = "%s-%s" % (chiave,mese)
            for line in open(r"/home/marco/Scrivania/file_test_ise/registri_chiamate/%s" % nomeFile, "r"):
                    dati = line.split(" ")
                    start = dati[2].split(".")
                    end = dati[3].split(".")
                    oraStart = start[0]
                    oraStart = int(oraStart)
                    minutiStart = start[1]
                    minutiStart = int(minutiStart)
                    oraEnd = end[0]
                    oraEnd = int(oraEnd)
                    minutiEnd = end[1]
                    minutiEnd = int(minutiEnd)
                    if oraStart < 8 and oraEnd < 8: #l'intera chiamata in fascia 1
                        fascia1 += ((oraEnd - oraStart)*60 + minutiEnd + (60 - minutiStart))
                    elif 8 < oraStart < 16 and 8 < oraEnd < 16:#l'intera chiamata è in fascia 2
                        fascia2 += ((oraEnd - oraStart)*60 + minutiEnd + (60 - minutiStart))
                    elif 16 < oraStart < 24 and 16 < oraEnd < 24:#l'intera chiamata è in fascia 3
                        fascia3 += ((oraEnd - oraStart)*60 + minutiEnd + (60 - minutiStart))
                    elif oraStart < 8 and 8 < oraEnd < 16:# la chiamata è tra la prima e la seconda fascia
                        fascia1 += ((8 - oraStart)*60 + (60 - minutiStart))
                        fascia2 += ((oraEnd - 8)*60 + minutiEnd)
                    elif 8 < oraStart < 16 and 16 < oraEnd < 24:#la chiamata è tra la seconda e la terza fascia
                        fascia2 += ((16 - oraStart)*60 + (60 - minutiStart))
                        fascia3 += ((oraEnd - 16)*60 + minutiEnd)
                    elif 16 < oraStart < 24 and oraEnd < 8:#la chiamata è tra la terza e la prima fascia
                        fascia3 += ((24 - oraStart) + (60 - minutiStart))
                        fascia1 += ((oraEnd)*60 + minutiEnd)
                    elif oraStart < 8 and 16 < oraEnd < 24:#la chiamata è tra la prima e la terza fascia
                        fascia1 += ((8 - oraStart)*60 + (60 - minutiStart))
                        fascia2 += ((16 - 8)*60)
                        fascia3 += ((oraEnd - 16) + minutiEnd)
                    elif 8 < oraStart < 16 and oraEnd < 8:#la chiamata è tra la seconda e la prima fascia
                        fascia2 += (16 - oraStart)*60 + (60 - minutiStart)
                        fascia3 += (24 -16)*60
                        fascia1 += (oraEnd)*60 + minutiEnd
                    elif 16 < oraStart < 24 and 8 < oraEnd < 16:#la chiamata è tra la terza e la seconda fascia
                        fascia3 += (24 - oraStart)*60 + (60-minutiStart)
                        fascia1 += (8-0)*60
                        fascia2 += (oraEnd - 8)*60 + minutiEnd
                        #ritengo improbabili chiamate superiori alle 24
            try:
                fileOutput = open(r"/home/marco/Scrivania/file_test_ise/registri_chiamate/%s.log" % chiave, "a")
            except: 
                print("Errore nell'apertura del file di Output")
            numMese = mese.split(".")
            numMese = numMese[0]
            fileOutput.write("Mese: %s\n" % numMese)
            fileOutput.write("Minuti effettuati in fascia 1 [00.00 - 07.59]: %d\n" % fascia1)
            fileOutput.write("Minuti effettuati in fascia 2 [08.00 - 15.59]: %d\n" % fascia2)
            fileOutput.write("Minuti effettuati in fascia 3 [16.00 – 23.59]: %d\n" % fascia3)
            fileOutput.close()
                    
    
            
Editor is loading...