HI:
使用 python 对一个大文件按照行数进行切割:
# -*- coding: UTF-8 -*-
import os
""""
python 干起活来 是真的慢
"""
def split(fromfile,todir,lineNum):
# 如果我文件夹不存在,则创建
if not os.path.exists(todir):
os.mkdir(todir)
else:
# 删除旧的数据
for fname in os.listdir(todir):
os.remove(os.path.join(todir,fname))
partnum = 0
filenum = 0
# 打开文件
inputfile = open(fromfile,'rb')
# 读取第一行
lineStr = inputfile.readline()
# 用一个字符串进行暂存每个子文件的文本
tempStr = bytes()
while lineStr:
partnum += 1
tempStr = tempStr + lineStr
if partnum >= lineNum:
subFile = open(todir + str(filenum), 'wb')
subFile.write(tempStr)
subFile.close()
print(filenum)
filenum += 1
partnum = 0
tempStr = bytes()
# 读取下一行
lineStr = inputfile.readline()
# print(partnum, '\t' , str(lineStr, encoding = "utf-8"))
subFile = open(todir + 'end', 'wb')
subFile.write(tempStr)
subFile.close()
if __name__ == '__main__':
# 文件夹
fromfile = 'E:\\tmp\\audio_check_hit_data.txt'
# 输出路径
todir = 'E:\\tmp\\outdir2\\'
# 行数
lineNum = 100
# 执行函数
split(fromfile, todir, lineNum)
跑起来跟乌龟一样,简直疯掉。