今天,在完成任务的时候,用到了统计ip地址出现的个数,现在就做一下总结,写一个统计ip地址的函数
代码如下:
输入:包含ip地址的文件所在的路径
输出:包含ip地址和它出现的次数的一个list
def ip_items(Inputfile_path):
#Input:a file path including some ip address
#Output:a list including ip address and the count of it
with codecs.open(Inputfile_path,'r',encoding='utf-8') as in_f:
lines = in_f.readlines()
#正则表达式的形式:'\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}'
regular_expression=r'\.'.join([r'\d{1,3}']*4)
#根据包含正则表达式的字符串创建模式对象
schema_object=re.compile(regular_expression)
count={}
for line in lines:
line = line.encode("utf-8")
for ip in schema_object.findall(line):
#遍历这一行中出现的所有的ip地址
count[ip]=count.get(ip,1)+1
ip_items=count.items()
return ip_items