按行切割大文件(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()))