太阳城申博官网登入
Fork me on GitHub

大文件分割、命名脚本 - Python

日志文件分割、命名

本文来源:http://www.sss088.com/games_sina_com_cn/

太阳城申博官网登入,  作为互联网直播行业的领先者,斗鱼是行业内最早采用实名制的平台,每位主播必须通过身份证+银行卡双重认证,同时对主播的行为制定了非常详细的规范,采用类似驾照管理的主播扣分机制,分数扣光直播间自动永久封禁。不少观众留言大赞吴昕的私服造型,并建议吴昕以后就这么穿。  附:王赋简历  王赋,男,汉族,1962年3月生,山西浑源人,1986年8月参加工作,1985年4月加入中国共产党,研究生学历,经济学硕士、公共管理硕士学位。而作为投资品的房屋,一旦价格预期发生逆转,市场普遍看跌,则供给端会暴增,而需求则快速收缩,房屋的低流动性导致短线投机客匮乏,因而,趋势预期导致的房价压力会在供求关系上被放大。

芒果TV新平台价值凸显优势互补、一体发展是关键吕焕斌在演讲中表示:“芒果TV以“独播”起步,向“独特”发力,依靠内容优势“弯道超车”,从业界认为的不可能变成研究的样板,成为体制内打造的被市场认可、在市场中占有一席之地的新兴媒体平台。据媒体报道,《了不起的孩子》是一档“儿童才艺脱口秀”。著名IT分析师付亮则向北京晨报记者表示,“有些自媒体人做的内容本身就是针对某个细分领域,受众本身就是圈内的“窄众”,如果他的观点已经获得圈内的认可并传得比较开,那么在这个圈内的十个人阅读实际上比圈外1千个人阅读效果要好。  【财新网】(记者岳跃)资本市场备受关注的案将于12月5日在青岛市中级人民法院开庭审理,这距他去年11月1日从宁波杭州湾跨海大桥上被带走,整整400天。

从整体配置情况来看,满足用户日常扩展需求没有问题。可以预见,随着重点城市公积金提取和贷款力度不断加大,区域公积金流动性压力将继续增加。  五、『影音、游戏体验:』  得益于上下对称式双扬声器设计,TCL950在横屏观看时,左右双扬声器在音效方面立体感更丰富,笔者外放音量调到60%左右,就可以明显感受到很足的声场,同时TCL950正面5.5寸AMOLED大屏无孔式设计,在播放在线超清视频时,并不会出现卡顿、画面拖影、掉帧等情况。著名IT分析师付亮则向北京晨报记者表示,“有些自媒体人做的内容本身就是针对某个细分领域,受众本身就是圈内的“窄众”,如果他的观点已经获得圈内的认可并传得比较开,那么在这个圈内的十个人阅读实际上比圈外1千个人阅读效果要好。

工作中经常会收到测试同学、客户同学提供的日志文件,其中不乏几百M一G的也都有,毕竟压测一晚上产生的日志量还是很可观的,xDxD,因此不可避免的需要对日志进行分割,通常定位问题需要针对时间点,因此最好对分割后的日志文件使用文件中日志的开始、结束时间点来命名,这样使用起来最为直观,下面给大家分享两个脚本,分别作分割、命名,希望能够给大家提供一点点帮助;

大文件分割

用法:

  1. python split_big_file.py
  2. 输入文件全路径名
  3. 输入期望的分割后每个小文件的行数
  4. Just wait.

     #?-*-?coding:utf-8?-*-
    
     import os,re,shutil
     import platform
    
     sys_name = platform.system().lower()
     SPLIT_CHAR = '\\' if sys_name.find('windows') != -1 else '/'
    
     print('input big files`s path:')
     _path = raw_input()
     names = []
     pathes = []
     if os.path.isfile(_path):
         print('is file')
         names.append(_path)
     else:
         print('is nothing')
     '''
     elif os.path.isdir(_path):
         print('This is dir')
         pathes = os.listdir(_path)
         print('pathes='+str(pathes))
         for i in range(len(pathes)):
             fullpath = _path+SPLIT_CHAR+pathes[i]
             print('fullpath='+fullpath)
             if os.path.isfile(fullpath):
                 names.append(fullpath)
                 files.append(open(fullpath).read().split('\n'))
     '''
    
     print(len(names))
    
     line_num = int(raw_input('every file`line num = '))
     print('line number='+str(line_num))
    
     for i in range(len(names)):
         _name = names[i]
         ori_name = _name.split(SPLIT_CHAR)[len(_name.split(SPLIT_CHAR))-1]
         dir_name = _name.replace(ori_name,'DIR_'+ori_name)
         dir_name = dir_name.replace('.','_')
         print ori_name
         print dir_name
         os.system('mkdir '+dir_name)
         count = 1
         print '已处理:'+str(count)+'行'
         part_file = open(dir_name+SPLIT_CHAR+str(0)+'.part.txt','w')
         with open(_name, 'rb') as f:
             for line in f:
             if count%line_num == 0:
                 part_file.close()
                 part_file = open(dir_name+SPLIT_CHAR+str(int(count/line_num))+'.part.txt','w')
             part_file.write(line+'\n')
             count+=1
             if count%100000 == 0:
                 print '已处理:'+str(count)+'行'
         print '已处理:'+str(count)+'行'
         os.system('python ./get_name_logfile.py '+dir_name)

文件按照开始、结束行时间戳重命名

用法:

  • python get_name_logfile.py log.txt
  • python get_name_logfile.py logs

参数选择文件或者文件夹均可,如果是文件夹,则会针对文件夹中的每个文件做处理(不会递归到文件夹下文件夹中的文件哦);

    #?-*-?coding:utf-8?-*-


    import os,re,shutil
    import sys
    import platform

    sys_name = platform.system().lower()
    SPLIT_CHAR = '\\' if sys_name.find('windows') != -1 else '/'

    _path = sys.argv[1]
    names = []
    files = []
    pathes = []
    if os.path.isfile(_path):
        print('is file')
        names[0] = _path
    elif os.path.isdir(_path):
        print('This is dir')
        pathes = os.listdir(_path)
        print('pathes='+str(pathes))
        for i in range(len(pathes)):
            fullpath = _path+SPLIT_CHAR+pathes[i]
            print('fullpath='+fullpath)
            if os.path.isfile(fullpath):
                names.append(fullpath)
    else:
        print('is nothing')
        
    print(len(names))

    #   日期格式 : 05-26 18:20:42.093   r'\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}.\d{3}'
    #   
    #   05-26 18:20:43.093:r'\d{2}-\d{2} {1,}\d{2}:\d{2}:\d{2}.\d{1,10}'

    date_reg = r'\d{2}-\d{2} {1,}\d{2}:\d{2}:\d{2}.\d{1,10}'
    time_reg = r'\d{2}:\d{2}:\d{2}.\d{1,10}'

    for i in range(len(names)):
        _name = names[i]
        print('name='+_name)
        # head 尝试在10行内查找日期
        head_len = 10
        start_time = '(start_time-'
        _file_ = open(_name, 'rb')
        reads = _file_.read()
        _file = reads.split('\n')
        if len(_file)/2 < 10:
            head_len = len(_file)/2
        for j in range(head_len):
            res = re.search(date_reg, _file[j])
            if res!=None and res.group(0)!=None:
                start_time = res.group(0)
                print('start_time='+start_time)
                break
        # tail
        tail_len = len(_file)-head_len
        end_time = '-end_time)'
        for j in range(len(_file)-1,tail_len-1,-1):
            res = re.search(time_reg, _file[j])
            if res!=None and res.group(0)!=None:
                end_time = res.group(0)
                print('end_time='+end_time)
                break
        _file_.close()
        ori_name = _name.split(SPLIT_CHAR)[len(_name.split(SPLIT_CHAR))-1]
        print('ori_name='+ori_name)
        new_name = start_time.replace(':','-')+'__'+end_time.replace(':','-')+os.path.splitext(ori_name)[1]
        print('new_name='+new_name)
        print("copy %s %s" % (_name, _name.replace(ori_name,new_name)))
        #os.system ("copy %s %s" % (_name, _name.replace(ori_name,new_name)))
        shutil.copy(_name,_name.replace(ori_name,new_name))
        os.system ("rm -rf "+_name)

最后

大家可以到我的Github上看看有没有其他需要的东西,目前主要是自己做的机器学习项目、Python各种脚本工具、数据分析挖掘项目以及Follow的大佬、Fork的项目等:
太阳城申博官网登入/github_com/NemoHoHaloAi

posted @ 2019-09-28 22:02 太阳城申博官网登入HoLoong 阅读(...) 评论(...) 太阳城申博官网登入 编辑 收藏
菲律宾申博网址导航 申博娱乐网登入 申博电子游戏开户登入 申博现金网登入 188申博直属现金网登入 菲律宾申博娱乐官网
菲律宾申博游戏 www.shenbo2.com ab7777.com 申博网址大全直营网 777老虎机支付宝充值 申博官网网址登入
申博手机版下载客户端 申博现金赌场登入 菲律宾太阳网城上娱乐 菲律宾太阳成娱乐管理网 申博在线开户登入 菲律宾申博开户