Ik heb een pyhton script geschreven welke pattern matching uitvoert over een serie statische maillogs (exim4).
Deze haalt een string op welke een maildomein is. (hotmail.com, yahoo.com, msn.com, etc etc).
Deze strings worden in een dictionary gezet en er word een count gedaan (defaultdict). De hoogste getallen bovenaan.
De functie word aangeroepen door onderstaande code:
Hieronder de output van het script die 3x achter elkaar is uitgevoerd:
1:
7035 gmail.com
6833 hotmail.com
5365 yahoo.com
2:
7002 gmail.com
6774 hotmail.com
5439 yahoo.com
3:
7019 gmail.com
6791 hotmail.com
5443 yahoo.com
Ik vermoed dat de data inconsistent is omdat ik een dubbele sort gebruik.
Echter heb ik niet voldoende kennis om deze eruit te slopen zonder mijn hele script te slopen.
Hulp word op prijs gesteld.
Deze haalt een string op welke een maildomein is. (hotmail.com, yahoo.com, msn.com, etc etc).
Deze strings worden in een dictionary gezet en er word een count gedaan (defaultdict). De hoogste getallen bovenaan.
De functie word aangeroepen door onderstaande code:
if __name__ == '__main__':
domainCounter = DomainCounter()
result = domainCounter.parse_log_files()
domainCounts = defaultdict(int)
top = 3
for domain in result:
domainCounts[domain] += 1
sortedDict = dict(sorted(domainCounts.items(), key=lambda x: x[1], reverse=True)[:int(top)])
for w in sorted(sortedDict, key=sortedDict.get, reverse=True):
print '%-3s %s' % (sortedDict[w], w)
Hieronder de output van het script die 3x achter elkaar is uitgevoerd:
1:
7035 gmail.com
6833 hotmail.com
5365 yahoo.com
2:
7002 gmail.com
6774 hotmail.com
5439 yahoo.com
3:
7019 gmail.com
6791 hotmail.com
5443 yahoo.com
Ik vermoed dat de data inconsistent is omdat ik een dubbele sort gebruik.
Echter heb ik niet voldoende kennis om deze eruit te slopen zonder mijn hele script te slopen.
Hulp word op prijs gesteld.