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

Posted 拂髯客

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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)

以上是关于python -- 题目自己写然后比较的主要内容,如果未能解决你的问题,请参考以下文章

VS Code配置markdown代码片段

VS Code配置markdown代码片段

我现在想把自己写的python模块源代码封装成dll,然后在别的python脚本里调用,可以吗?

Python如何调用别人写好的脚本

创建自己的代码片段(CodeSnippet)

sublime text3 添加新片段