• tlog日志分析


    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)   #先游
    python3.0
    #!/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) #先游
    python2.6

    注册用户

    #!/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 + '
    ')
        return list(set(result))
    if __name__ == "__main__":
            print(''+begin_time+''+end_time+'时间内注册的用户数为:',len(PlayerRegister_vopenid_list()))
    Python3.0
    #!/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())
    Python2.6

    留存

    #!/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 + '
    ')
            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))
    Python3.0
    #!/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)
    Python2.6
  • 相关阅读:
    爬虫|如何在Pycharm中调试JS代码
    nexus 6p 输入8.1和获取root权限
    年近30的我,离开了北京,回家做个老百姓,等待那一刻的发生!
    Azure认知服务的实际应用-资讯采集推送
    C#类库推荐 拼多多.Net SDK,开源免费!
    [翻译]EntityFramework Core 2.2 发布
    4-如何学习和解决问题
    3-WIN10系统及开发工具支持
    2-选择学习的目标和方向
    1-编程的基本条件和起步
  • 原文地址:https://www.cnblogs.com/augustyang/p/9485333.html
Copyright © 2020-2023  润新知