码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2018-07-18 14:18:08      阅读:121      评论:0      收藏:0      [点我收藏+]

标签:not   lam   pil   方式   with open   encoding   spl   dict   +=   

题目一

'''
编写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)

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

标签:not   lam   pil   方式   with open   encoding   spl   dict   +=   

原文地址:https://www.cnblogs.com/Frank99/p/9328260.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!