python -- 题目自己写然后比较

题目一

'''
编写Python脚本,分析xx.log文件,按域名统计访问次数倒序输出

xx.log文件内容如下:
https://www.sogo.com/ale.html
https://www.qq.com/3asd.html
https://www.sogo.com/teoans.html
https://www.bilibili.com/2
https://www.sogo.com/asd_sa.html
https://y.qq.com/
https://www.bilibili.com/1
https://dig.chouti.com/
https://www.bilibili.com/imd.html
https://www.bilibili.com/

输出:
www.bilibili.com
www.sogo.com
www.qq.com
y.qq.com
dig.chouti.com

'''
import re

domain_dict = {}
with open('./visit.log','r') as fr:
    for line in fr.readlines():
        pattern = re.compile(r'(http.*?com).*')
        domain = pattern.match(line).group(1)
        if domain in domain_dict:
            domain_dict[domain] = domain_dict[domain]+1
        else:
            domain_dict[domain] = 1
print(domain_dict)
sorted(domain_dict.items(),key=lambda domain_dict:domain_dict[1],reverse=True)
# 别人家的方法
#第一种方式
import re
from collections import Counter
with open("xx.log","r",encoding="utf-8") as f:
    data=f.read()
    res=re.findall(r"https://(.*?)/.*?",data)
    dic=Counter(res)
      
ret=sorted(dic.items(),key=lambda x:x[1],reverse=True)

for k,v in ret:
    print(v,k)

#第二种方式
dic={}
with open("xx.log","r",encoding="utf-8") as f:
    for line in f:
        line=line.split("/")[2]
        if line not in dic:
            dic[line]=1
        else:
            dic[line]+=1
ret=sorted(dic.items(),key=lambda x:x[1],reverse=True)
for k,v in ret:
    print( v,k)

猜你喜欢

转载自www.cnblogs.com/Frank99/p/9328260.html