Я занимаюсь анализом файлов журнала, которые я получаю из своей сети доставки контента. Я дошел до того, что могу выделить одну часть файла журнала, и именно это IP-адрес получил доступ к нашему сайту. То, что я хочу достичь здесь, - это список из 10 самых популярных IP-адресов из большого списка каждого IP-адреса. Некоторые примеры данные я получаю, когда я печатаю этот список выглядит следующим образом:Группировка «похожих значений» из списка
192.168.1.1
192.168.1.1
192.168.1.1
192.168.1.1
192.168.1.1
192.168.1.2
192.168.1.2
192.168.1.2
192.168.1.2
192.168.1.1
192.168.1.1
192.168.1.1
Это не реальный IP-адреса, которые я получаю от выхода, и есть еще много. Как вы можете видеть, они не сгруппированы. Как мне сделать что-то подобное?
Edit: Вот мой код
import gzip
from collections import Counter
logFileName = open('C:\\Users\\Pawlaczykm\\Desktop\\fileNames.txt', 'r')
for line in logFileName.readlines():
print 'Summary of: ' + line
# use gzip to decompress the file
with gzip.open('C:\\Users\\Pawlaczykm\\Desktop\\' + line.rstrip() + '.gz', 'rb') as f:
for eachLine in f:
parts = eachLine.split('\t')
if len(parts) > 1:
ipAdd = parts[2]
c = Counter(ipAdd.splitlines())
print(c.most_common(10))
'sort' список, и использовать' itertools.groupby', если вы на самом деле хотите, чтобы они сгруппированы вместе –
что-то вроде этого: HTTP : //stackoverflow.com/q/5695208 –