zoukankan      html  css  js  c++  java
  • 按行切割大文件(linux split 命令简版)

    按行切割大文件(linux split 命令简版)

    #-*- coding:utf-8 -*-
    __author__ = 'KnowLifeDeath'
    
    '''
    Linux上Split命令可以方便对大文件进行分割,该PY脚本是在Windows上按指定行数切割文件
    Python Version: 2.7
    '''
    
    import time
    import sys
    
    print time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time()))
    
    '''需要初始化参数'''
    BigFile = "E:DataBig.txt"
    OneUnitEnd = 1000000 #分割块行数
    ZeroFillWidth = 3 #zfill参数是小文件的序号编码长度
    
    
    seed = 0 #当前块的计数
    UnitNo = 0 #当前块序号
    
    fSmallFile = open('{0}Samll{1}.txt'.format(sys.path[0], '0'.zfill(ZeroFillWidth)),'w')
    
    fBigFile = open(BigFile)
    for line in fBigFile:
        rawLineData = line.strip('
    ').strip()
        if len(rawLineData) != 0:
            seed +=1
            fSmallFile.write('{0}
    '.format(rawLineData))
            if seed == OneUnitEnd:
                fSmallFile.close()
                seed = 0
                UnitNo += 1
                fSmallFile = open('{0}\Samll{1}.txt'.format(sys.path[0], str(UnitNo).zfill(ZeroFillWidth)), 'w')
    
    #最后一个small文件可能是空文件(整分时)
    #a/w模式速度区别不大,亿级数据都是1分半到2分之间搞定
    #close多次不会有问题
    fSmallFile.close()
    
    print time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time()))
    
  • 相关阅读:
    排序算法研究
    SqlParameters参数
    winfrom项目
    方法参数中有out和in关键字是什么意思?
    在C#中使用存储过程
    11Book系列多表群操作
    7drf过滤排序分页异常处理
    12RBAC基于角色的访问控制
    5drf路由组件
    8drf自动生成接口文档
  • 原文地址:https://www.cnblogs.com/know-life-death/p/6362072.html
Copyright © 2011-2022 走看看