python统计pv、uv

来源:互联网 发布:哪有培训seo 编辑:程序博客网 时间:2024/04/30 22:09

1、准备原始数据:

原始数据存储在本地的login.txt的文本文件中,文件中的第一列是用户的登录时间(unixstamp时间格式),第二列是用户的ID,中间用制表符分隔。

2、输出结果:

pv: 200uv: 178TOP 10 PLAYER:('1073363758', 4)('1065322313', 3)('557771248', 2)('914547661', 2)('601274164', 2)('924789881', 2)('1088317968', 2)('982752572', 2)('1082709169', 2)('833584790', 2)

3、python统计脚本:

import time#日期转换函数,将unixstamp时间转换成utc格式def stamp_to_time(value):    format='%Y-%m-%d %H:%M:%S'    t=time.localtime(value)    dt=time.strftime(format,t)    return dt#统计处理过程def stat_proc():    #从login.txt读取数据,假设文件在当前工作目录    orders=open('./login.txt')    #程序指定是制表符分隔的文件,读取第二列用户ID,结果存在列表中    player_list = [i.split("\t")[1] for i in orders ]    print "pv:",len(player_list)#记录数就是pv了    players={}#定义空的字典,用来记录每个用户的登录次数    for p in player_list:        players[p] = 0#初始化登录次数是0   #这里循环计算每个用户的登陆次数         player_id=players.keys()    for pid in player_id:        cnt=0        for p in player_list:            if p==pid:                cnt =cnt+1        players[pid]=cnt    print "uv:",len(players)    #按照登录次数将用户进行降序排序    sorted_players=sorted(players.iteritems(),key=lambda players:players[1],reverse=True)    #打印登陆次数在前10名的用户    flag=0    print "TOP 10 PLAYER:"    for i in sorted_players:        flag +=1        print i        if flag>=10:            breakif __name__=='__main__':    stat_proc()    time.sleep(1)
0 0
原创粉丝点击