我正在解析从我的内容交付网络获取的日志文件。我已经到了我可以隔离日志文件的一部分,这是什么IP地址访问我们的网站。我想在这里实现的是从每个IP地址的一个大列表中得到一个前10个左右的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,还有更多。不过,正如您所看到的,它们并没有组合在一起。我该怎么做这样的事?你知道吗
编辑:这是我的代码
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))
您可以使用^{} 来实现:
现在您可以获得10个最常见的地址,即前10个地址列表:
输出:
这是一个地址和计数的列表。你知道吗
在您的情况下,您需要向计数器提供所有地址:
相关问题 更多 >
编程相关推荐