使用python進行拆分大文件的方法
更新時間:2018年12月10日 08:42:44 作者:IBoyMan
今天小編就為大家分享一篇使用python進行拆分大文件的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
python按指定行數(shù)把大文件進行拆分
如圖大文件有7000多萬行,大小為16G

需要拆分成多個200萬行的小文件
代碼如下:
# -*- coding:utf-8 -*-
from datetime import datetime
def Main():
source_dir = '/data/u_lx_data/zhangqm/sh/yanjie/liuxuesheng/jz_yuanshi_list0206.txt'
target_dir = '/data/u_lx_data/zhangqm/sh/yanjie/liuxuesheng/split/'
# 計數(shù)器
flag = 0
# 文件名
name = 1
# 存放數(shù)據(jù)
dataList = []
print("開始。。。。。")
print(datetime.now().strftime('%Y-%m-%d %H:%M:%S'))
with open(source_dir,'r') as f_source:
for line in f_source:
flag+=1
dataList.append(line)
if flag == 2000000:
with open(target_dir+"jz_yuanshi_list_"+str(name)+".txt",'w+') as f_target:
for data in dataList:
f_target.write(data)
name+=1
flag = 0
dataList = []
# 處理最后一批行數(shù)少于200萬行的
with open(target_dir+"jz_yuanshi_list_"+str(name)+".txt",'w+') as f_target:
for data in dataList:
f_target.write(data)
print("完成。。。。。")
print(datetime.now().strftime('%Y-%m-%d %H:%M:%S'))
if __name__ == "__main__":
Main()
結(jié)果如下:

總共產(chǎn)生39個文件,最后一個文件行數(shù)760821,這樣就OK啦
經(jīng)測試16G文件所需時間如圖:不到兩分鐘

以上這篇使用python進行拆分大文件的方法就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

