当前位置:   article > 正文

python进行拆分大文件_python生成器拆分大文件

python生成器拆分大文件

python按指定行数把大文件进行拆分

如图大文件有7000多万行,大小为16G

需要拆分成多个200万行的小文件

代码如下:

# -*- coding:utf-8 -*-
from datetime import datetime
 
def Main():
    source_dir = '/jz_yuanshi_list0206.txt'
    target_dir = '/split/'
 
    # 计数器
    flag = 0
 
    # 文件名
    name = 1
 
    # 存放数据
    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 = []
                
    # 处理最后一批行数少于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()
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42

结果如下:

总共产生39个文件,最后一个文件行数760821,这样就OK啦大笑

经测试16G文件所需时间如图:不到两分钟大笑

版权声明:本文为博主原创文章,未经博主允许不得转载。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/不正经/article/detail/625837
推荐阅读
相关标签
  

闽ICP备14008679号