python 统计pvuv 二

test.py

#!/usr/bin/python
import os
import sys
import string
import json
#awk -F ',' 'substr($0,21,2)=='14'{print $0}' * > 14.log

def run():
	logfile = '14.log'
	res = dict()
	if not os.path.exists(logfile):
        	print 'error:' + logfile + ' not existed.'
        	print 'hint:awk -F \',\' \'substr($0,21,2)==\'14\'{print $0}\' WB_LOG_LOAD* > 14.log'
        	exit()

	#time zone
	dts = set()
	dts.add('2015-04-29 00')
	dts.add('2015-04-29 01')
	dts.add('2015-04-29 02')
	dts.add('2015-04-29 03')
	dts.add('2015-04-29 04')
	dts.add('2015-04-29 05')
	dts.add('2015-04-29 06')
	dts.add('2015-04-29 07')
	dts.add('2015-04-29 08')

	f = open(logfile,'r')
	line = f.readline()
	while line:
		if line[0:13] not in dts:
        		#print line[0:13]
			line = f.readline()
			continue

        	arr = line.split(',')

		if len(arr) != 7:
			line = f.readline()
			continue
		
        	#log id and setkey are existed.
        	if arr[2] and arr[5]:
                	#print arr[1][3:]
                	key = arr[5]

                	item = res.get(key, -1)
                	if -1 == item:
                        	item = {'pv':0, 'uvSet':set([])}
                        	res[key] = item
                	item['pv'] = item['pv'] + 1
                	item['uvSet'].add(arr[2])
        	#print len(arr)
		line = f.readline()
	f.close()

	for item in res:
        	print item + ' pv:' + str(res[item]['pv']) + ' uv:' + str(len(res[item]['uvSet']))



main.py

#!/usr/bin/python
import os
import sys
import test

if '__main__' == __name__:
	num = 20
	if len(sys.argv) > 1:
		num = int(sys.argv[1])
	#run(num)
	test.run()




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值