gpt4 book ai didi

用Python实现大文本文件切割的方法

转载 作者:qq735679552 更新时间:2022-09-28 22:32:09 25 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章用Python实现大文本文件切割的方法由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

在实际工作中,有些场景下,因为产品既有功能限制,不支持特大文件的直接处理,需要把大文件进行切割处理.

当然可以通过UltraEdit编辑工具,或者从网上下载一些文件切割器之类的。但这些要么手工操作太麻烦,要么不能满足自定义需求.

而且,对程序员来说,DIY一个轮子还是有必要的.

Python作为快速开发工具,其代码表达力强,开发效率高,因此用Python快速写一个,还是可行的.

需求描述:

输入:给定一个带列头的csv文件,或者txt文件,或者其他文本文件.

输出:指定单文件内部行数的一系列可区分小文件.

开发环境:Python 3.6 。

代码如下:

?
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
# -*- coding: cp936 -*-
import os
import time
 
def mkSubFile(lines,head,srcName,sub):
  [des_filename, extname] = os.path.splitext(srcName)
  filename = des_filename + '_' + str (sub) + extname
  print ( 'make file: %s' % filename)
  fout = open (filename, 'w' )
  try :
   fout.writelines([head])
   fout.writelines(lines)
   return sub + 1
  finally :
   fout.close()
 
def splitByLineCount(filename,count):
  fin = open (filename, 'r' )
  try :
   head = fin.readline()
   buf = []
   sub = 1
   for line in fin:
    buf.append(line)
    if len (buf) = = count:
     sub = mkSubFile(buf,head,filename,sub)
     buf = []
   if len (buf) ! = 0 :
    sub = mkSubFile(buf,head,filename,sub)
  finally :
   fin.close()
 
if __name__ = = '__main__' :
  begin = time.time()
  splitByLineCount( '盂县.csv' , 600000 )
  end = time.time()
  print ( 'time is %d seconds ' % (end - begin))

测试结果:

1.4GB的csv文件,13列数据,切分成23个小文件,耗时55秒.

以上这篇用Python实现大文本文件切割的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我.

原文链接:https://blog.csdn.net/zhang_qxian/article/details/62428492 。

最后此篇关于用Python实现大文本文件切割的方法的文章就讲到这里了,如果你想了解更多关于用Python实现大文本文件切割的方法的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com