首页 > 系统服务 > 详细

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

时间:2017-02-03 10:50:11      阅读:444      评论:0      收藏:0      [点我收藏+]

按行切割大文件(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:\Data\Big.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(‘\n‘).strip()
    if len(rawLineData) != 0:
        seed +=1
        fSmallFile.write(‘{0}\n‘.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()))

 

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

原文:http://www.cnblogs.com/know-life-death/p/6362072.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!