tlog日志按渠道划分

#!/usr/bin/env python # _*_ encoding: utf-8 _*_ # import sys #python3.0 #tlog日志分隔 #augustyang 2018-07-29 tlog = 'tlog.log' tapap_openid='taptap.txt' #taptap的openid tlog_name= sys.argv[1] #先游 tlog_name1= sys.argv[2] #taptap # tlog_name= 'xianyou.tlog' #先游 # tlog_name1= 'taptap.tlog' #taptap def taptap(): #tap的openid取出 open_list = [] with open(tapap_openid,'r+')as f: for i in f: open_list.append(i.strip()) return (open_list) def outer_qudao(): #取出其他渠道的openid outher_openid = [] with open(tlog,encoding='utf-8')as f: for i in f: vopenid = i.split('|')[6] outher_openid.append(vopenid) #所有的openid outher_openid = list(set(outher_openid)) diff_openid1 = list(set(outher_openid)^set(taptap())) #求出差異的openid return diff_openid1 def check_tlog(file_name,qudao): #找出對應渠道的日志文件 with open(file_name,'w+',encoding='utf-8') as ff: for openid in qudao(): with open(tlog, encoding='utf-8')as f: for i in f: vopenid = i.split('|')[6] if openid == vopenid: ff.write(i) if __name__ == "__main__": check_tlog(tlog_name1,taptap) #taptap check_tlog(tlog_name,outer_qudao) #先游

#!/usr/bin/env python # _*_ encoding: utf-8 _*_ import sys tlog = 'tlog.log' tapap_openid='taptap.txt' tlog_name= sys.argv[1] #先游 tlog_name1= sys.argv[2] #taptap #file_name 先游 #file_name1 taptap #python2.6 # # def taptap(): #tap的openid open_list = [] with open(tapap_openid,'r+')as f: for i in f: open_list.append(i.strip()) return (open_list) def outer_qudao(): #取出其他渠道的openid outher_openid = [] with open(tlog)as f: for i in f: vopenid = i.split('|')[6] outher_openid.append(vopenid) #所有的openid outher_openid = list(set(outher_openid)) diff_openid1 = list(set(outher_openid)^set(taptap())) #求出差異的openid return diff_openid1 def check_tlog(file_name,qudao): #找出渠道的日志文件 with open(file_name,'w+') as ff: for openid in qudao(): with open(tlog)as f: for i in f: vopenid = i.split('|')[6] if openid == vopenid: ff.write(i) if __name__ == "__main__": check_tlog(tlog_name1,taptap) #taptap check_tlog(tlog_name,outer_qudao) #先游
注冊用戶

#!/usr/bin/env python # _*_ encoding: utf-8 _*_ import sys,os,time,datetime begin_time = sys.argv[1] end_time = sys.argv[2] tlog = 'tlog.log' create_time = str(datetime.datetime.strptime("2018-07-12 12:00:00",'%Y-%m-%d %H:%M:%S')) #開服時間 # 注冊用戶的openid去重列表 def PlayerRegister_vopenid_list(): result = [] with open(tlog, 'r') as f: for i in f: if i.startswith("PlayerRegister"): dtEventTime = i.split('|')[2] #注冊時間 vopenid = i.split('|')[6] if begin_time <= dtEventTime <= end_time: result.append(vopenid + '\n') return list(set(result)) if __name__ == "__main__": print('從'+begin_time+'到'+end_time+'時間內注冊的用戶數為:',len(PlayerRegister_vopenid_list()))

#!/usr/bin/env python # _*_ encoding: utf-8 _*_ import sys,os,time,datetime tlog= sys.argv[1] begin_time = sys.argv[2] end_time = sys.argv[3] create_time = str(datetime.datetime.strptime("2018-08-16 12:00:00",'%Y-%m-%d %H:%M:%S')) #開服時間 # 注冊用戶的openid去重列表 def PlayerRegister_vopenid_list(): result = [] with open(tlog, 'r') as f: for i in f: if i.startswith("PlayerRegister"): dtEventTime = i.split('|')[2] #注冊時間 vopenid = i.split('|')[6] if begin_time <= dtEventTime <= end_time: result.append(vopenid) return list(set(result)) if __name__ == "__main__": print '從'+begin_time+'到'+end_time+'時間內注冊的用戶數為:',len(PlayerRegister_vopenid_list())
留存

#!/usr/bin/env python # _*_ encoding: utf-8 _*_ #augustyang 2018-07-29 #========================================= import sys,os,time,datetime from PlayerRegister_add import PlayerRegister_vopenid_list #導入規定時間內注冊的用戶list register_begin_time = sys.argv[1] #注冊開始時間 register_end_time = sys.argv[2] #注冊結束時間 login_time = sys.argv[3] #登錄開始時間 logout_time = sys.argv[4] #登錄結束時間 tlog = 'tlog.log' #PlayerLogin(登錄) PlayerLogout(登出) ReturnFlow(后台反回上報登錄信息) #========================================= #規定時間內用戶的操作(方法) def User_operation (x,f): result = [] for i in f: if i.startswith(x): dtEventTime = i.split('|')[2] #登錄時間 vopenid = i.split('|')[6] if login_time <= dtEventTime <= logout_time: result.append(vopenid + '\n') return list(set(result)) #返回用戶列表 #某個時間段內所有登錄,登出,returnflow,的openid去重_list def sum_login_openid_list(): with open(tlog,'r')as fn: login_openid_list = [] login_openid_list.extend(User_operation('PlayerLogin',fn)) login_openid_list.extend(User_operation('PlayerLogout',fn)) login_openid_list.extend(User_operation('ReturnFlow',fn)) login_openid_list = list(set(login_openid_list)) return login_openid_list #返回某個時間段內所有的用戶列表(去重后的結果) if __name__ == "__main__": #留存用戶數 def liucun_user(): #PlayerRegister_vopenid_list()注冊用戶list msg5 = [line for line in sum_login_openid_list() if line in PlayerRegister_vopenid_list()] return len(msg5) #注冊用戶數 registerenumbers = len(PlayerRegister_vopenid_list()) print(('從'+register_begin_time+'到'+register_end_time+'注冊用戶數:'),registerenumbers) print('留存用戶數:',liucun_user()) if liucun_user() == 0 or registerenumbers == 0: print('留存沒有數據') else: print('留存率:',"%.2f%%" %(float(liucun_user())/float(registerenumbers)*100))

#!/usr/bin/env python # _*_ encoding: utf-8 _*_ #augustyang 2018-07-29 #python2.6 #========================================= import sys,os,time,datetime from PlayerRegister_add import PlayerRegister_vopenid_list #導入規定時間內注冊的用戶list tlog= sys.argv[1] register_begin_time = sys.argv[2] #注冊開始時間 register_end_time = sys.argv[3] #注冊結束時間 login_time = sys.argv[4] #登錄開始時間 logout_time = sys.argv[5] #登錄結束時間 #PlayerLogin(登錄) PlayerLogout(登出) ReturnFlow(后台反回上報登錄信息) #========================================= #規定時間內用戶的操作(方法) def User_operation (x,f): result = [] for i in f: if i.startswith(x): dtEventTime = i.split('|')[2] #登錄時間 vopenid = i.split('|')[6] if login_time <= dtEventTime <= logout_time: result.append(vopenid) return list(set(result)) #返回用戶列表 #某個時間段內所有登錄,登出,returnflow,的openid去重_list def sum_login_openid_list(): with open(tlog,'r')as fn: login_openid_list = [] login_openid_list.extend(User_operation('PlayerLogin',fn)) login_openid_list.extend(User_operation('PlayerLogout',fn)) login_openid_list.extend(User_operation('ReturnFlow',fn)) login_openid_list = list(set(login_openid_list)) return login_openid_list #返回某個時間段內所有的用戶列表(去重后的結果) if __name__ == "__main__": #留存用戶數 def liucun_user(): #PlayerRegister_vopenid_list()注冊用戶list msg5 = [line for line in sum_login_openid_list() if line in PlayerRegister_vopenid_list()] return len(msg5) #注冊用戶數 registerenumbers = len(PlayerRegister_vopenid_list()) print ('從'+register_begin_time+'到'+register_end_time+'注冊用戶數:'),registerenumbers print '留存用戶數:',liucun_user() if liucun_user() == 0 or registerenumbers == 0: print '留存沒有數據' else: print '留存率:',"%.2f%%" %(float(liucun_user())/float(registerenumbers)*100)