python 统计pvuv 一

数据格式:

2015-04-10 15:32:54
udid:user1
 setKey:flag1
 
2015-04-10 15:33:00
udid:user2
 setKey:flag2


...


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

def run(num=1):
#file param
	filePrefix='icap/flowtips'
	fileEx='.txt'


	'''
	input
	'''
	records=list()
	for i in range(num + 1):
		filePath=''.join([filePrefix,str(i),fileEx])
		if not os.path.exists(filePath):
			continue
	
		f=open(filePath,'r')
		line=f.readline()
		record=list()#record=''
		while line:
			#print line
			if not len(line.strip()):
				records.append('\t'.join(record))
				record=list()#record=''
			else:
				record.append(line.strip()) #+= line.strip() + '\t'

			line=f.readline()
		f.close()


	'''
	analysis
	'''
	data=dict()
	for s in records:
		#print s
		arr = s.split('\t')

		if len(arr) < 3:
			continue

		#key
		key = arr[0].strip()[0:10]# + '\t' + arr[2].strip()[7:]

		#value
		val = data.get(key, -1)
		if -1 == val:
			#create a new dict as value assosition to the key
			val = {'pv':0, 'uvSet':set([])}
			data[key] = val
		
		#pv++
		val['pv'] = val['pv'] + 1
		#add item to set
		val['uvSet'].add(arr[1])


	'''
	output
	'''
	for key in data:
		val = data[key]
		print ( '%s\t%d\t%d' % ( key, val['pv'], len(val['uvSet']) ) )


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

用dict()存储统计,set([])统计uv

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值