广告
返回顶部
首页 > 资讯 > 后端开发 > Python >python实现大文本文件分割成多个小文件
  • 675
分享到

python实现大文本文件分割成多个小文件

2024-04-02 19:04:59 675人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

本文介绍一种将一个大的文本文件分割成多个小文件的方法 方法一: 1.读取文章所有的行,并存入列表中 2.定义分割成的小文本的行数 3.将原文本内容按一定行数依次写入小文件中 4.此方

本文介绍一种将一个大的文本文件分割成多个小文件的方法

方法一:

1.读取文章所有的行,并存入列表中
2.定义分割成的小文本的行数
3.将原文本内容按一定行数依次写入小文件中
4.此方法对较小的大文件比较适合

代码:


#coding:utf-8
#将大文本文件分割成多个小文本文件
import os

sourceFileName = "test.log" #定义要分割的文件
def cutFile():
    print("正在读取文件...")
    sourceFileData = open(sourceFileName,'r',encoding='utf-8')
    ListOfLine = sourceFileData.read().splitlines()#将读取的文件内容按行分割,然后存到一个列表中
    n = len(ListOfLine)
    print("文件共有"+str(n)+"行")
    print("请输入需要将文件分割的个数:")
    m = int(input("")) #定义分割的文件个数
    p = n//m + 1
    print("需要将文件分成"+str(m)+"个子文件")
    print("每个文件最多有"+str(p)+"行")
    print("开始进行分割···")
    for i in range(m):
        print("正在生成第"+str(i+1)+"个子文件")
        destFileName = os.path.splitext(sourceFileName)[0]+"_part"+str(i)+".log" #定义分割后新生成的文件
        destFileData = open(destFileName,"w",encoding='utf-8')
        if(i==m-1):
            for line in ListOfLine[i*p:]:
                destFileData.write(line+'\n')
        else:
            for line in ListOfLine[i*p:(i+1)*p]:
                destFileData.write(line+'\n')
        destFileData.close()
    print("分割完成")

cutFile()

方法二:

依次读取指定行数的数据,并写入新的文件中,对于较大文件,采用此方法


import os

#要分割的文件 
source_file='track.log'

#定义每个子文件的行数
file_count=10000 #根据需要自定义

def mk_SubFile(lines,srcName,sub):
    [des_filename, extname] = os.path.splitext(srcName)
    filename  = des_filename + '_' + str(sub) + extname
    print( '正在生成子文件: %s' %filename)
    with open(filename,'wb') as fout:
        fout.writelines(lines)
        return sub + 1


def split_By_LineCount(filename,count):
    with open(filename,'rb') as fin:
        buf = []
        sub = 1
        for line in fin:
            if len(line.strip())>0: #跳过空行
                buf.append(line)
                #如果行数超过指定的数,且数据为一个完整的记录,则将buf写入到一个子文件中,并初始化buf
                line_tag=line.strip()[0] #取每一行第一个字符,如果该行为空,会报错,故加上前面判断
                if len(buf) >= count and line_tag == '*': #每一个新的记录数据是从*标识开始
                    buf = buf[:-1]
                    sub = mk_SubFile(buf,filename,sub) #将buf写入子文件中
                    buf = [line] #初始化下一个子文件的buf,第一行为*开头的
                
        #最后一个文件,文件行数可能不足指定的数
        if len(buf) != 0:
            sub = mk_SubFile(buf,filename,sub)
    print("ok")


if __name__ == '__main__':
    split_By_LineCount(source_file,file_count)#要分割的文件名和每个子文件的行数

方法二中日志格式如下:

每一条完整的是记录是以*号开头,为了在子文件中不出现被截断的数据记录,因此需要确保每一个buf中是完整的记录,判断方法见代码

方法三:基于大小分割


# -*- coding: utf-8 -*-

#这种方法是按照大小分割文件,会存在同一行被分割在两个文件中的情况

import os

filename = "track.log"#需要进行分割的文件
size = 10000000 #分割大小10M

def mk_SubFile(srcName,sub,buf):
    [des_filename, extname] = os.path.splitext(srcName)
    filename  = des_filename + '_' + str(sub) + extname
    print( '正在生成子文件: %s' %filename)
    with open(filename,'wb') as fout:
        fout.write(buf)
        return sub+1
            
            
def split_By_size(filename,size):
    with open(filename,'rb') as fin:
        buf = fin.read(size)
        sub = 1
        while len(buf)>0:
            sub = mk_SubFile(filename,sub,buf)
            buf = fin.read(size)  
    print("ok")
            

if __name__=="__main__":
    split_By_size(filename, size)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程网。

--结束END--

本文标题: python实现大文本文件分割成多个小文件

本文链接: https://www.lsjlt.com/news/123984.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • python实现大文本文件分割成多个小文件
    本文介绍一种将一个大的文本文件分割成多个小文件的方法 方法一: 1.读取文章所有的行,并存入列表中 2.定义分割成的小文本的行数 3.将原文本内容按一定行数依次写入小文件中 4.此方...
    99+
    2022-11-12
  • python如何实现大文本文件分割成多个小文件
    小编给大家分享一下python如何实现大文本文件分割成多个小文件,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!python可以做什么Python是一种编程语言,内置了许多有效的工具,Python几乎无所不能,该语言通俗易懂...
    99+
    2023-06-14
  • 用Python实现大文本文件切割
    在实际工作中,有些场景下,因为产品既有功能限制,不支持特大文件的直接处理,需要把大文件进行切割处理。 当然可以通过UltraEdit编辑工具,或者从网上下载一些文件切割器之类的。但这些要么手工操作太麻烦,要么不能满足自定义需求。 而且,对...
    99+
    2023-01-31
    文本文件 Python
  • 怎样把大Excel文件拆成多个小文件
    怎样把大Excel文件拆成多个小文件,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。出于各种原因,有时我们要将一个大Excel拆成一些小文件。这种算法可以用VBA实现,但代码...
    99+
    2023-06-03
  • Python实现文本文件拆分写入到多个文本文件的方法
    引言 将一个txt文本文件中的内容行拆分固定的行数,自动分批写入到多个文本文件。 比如:一个源txt文件有5100行数据,每1000行插入到一个txt文件,最后获得6个txt文件(5...
    99+
    2022-11-12
  • VBS如何实现文本文件分割脚本
    这篇文章给大家分享的是有关VBS如何实现文本文件分割脚本的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。而Windows下没有一个现存的比较好用的分割工具,所以我用VBS做了一个文本文件的分割工具,和各位网友共享。...
    99+
    2023-06-08
  • 使用Python怎么将一个文本文件拆分到多个文本文件
    使用Python怎么将一个文本文件拆分到多个文本文件?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。python可以做什么Python是一种编程语言,内置了许多有效的工具,Pyt...
    99+
    2023-06-14
  • Python实现将一个大文件按段落分隔为多个小文件的简单操作方法
    本文实例讲述了Python实现将一个大文件按段落分隔为多个小文件的简单操作方法。分享给大家供大家参考,具体如下: 今天帮同学处理一点语料。语料文件有点大,并且是以连续两个换行符作为段落标志,他想把它按段落分...
    99+
    2022-06-04
    多个 段落 操作方法
  • 多个Python文件打包成一个可执行文件(.exe)文件
    安装Pyinstaller 首先我们要先安装Pyinstaller,直接在cmd使用pip命令  pip install pyinstaller  如果网速太慢可以切换国内源来加速  pip install -i https://pypi....
    99+
    2023-09-24
    python
  • 如何将一个CSV格式的文件分割成两个CSV文件
    目录将一个CSV格式的文件分割成两个CSV文件定义split_csv函数调用上述函数将CSV文件以某列为条件分类切割大概步骤上代码 将一个CSV格式的文件分割成两个CSV文...
    99+
    2022-11-11
  • python与php实现分割文件代码
    前两天有个朋友说,想实现一个文本文件按照固定行数进行分割成多个文本文件,却不知如何实现。如果数据量小手动分割下就好了,如果数据量很大的话手动完成实在太耗费人力了,也不现实。那么就需要借助脚本去实现。既然有朋...
    99+
    2022-06-04
    代码 文件 python
  • 将pdf文件拆分成多个文件的教程
    要将PDF文件拆分成多个文件,可以使用以下方法:1. 使用Adobe Acrobat软件:- 打开PDF文件。- 在右侧的“工具”栏...
    99+
    2023-09-16
    pdf
  • Python按行读取文件的实现方法【小文件和大文件读取】
    本文实例讲述了Python按行读取文件的实现方法。分享给大家供大家参考,具体如下: 小文件: #coding=utf-8 #author: walker #date: 2013-12-30 #funct...
    99+
    2022-06-04
    文件 大文件 方法
  • 云服务器怎么分割成多个虚拟主机的文件
    云服务器通常可以分割成多个虚拟主机的文件,以便用户可以在不同的位置访问它们。常见的方法包括以下步骤: 创建新主机 在一个虚拟主机上创建一个独立的主机,通常使用DNS服务器来指定目标位置。然后,将一个主机分配给一个IP地址,以实现跨地域...
    99+
    2023-10-27
    多个 虚拟主机 服务器
  • python实现文本文件合并
    python合并文本文件示例代码。 python实现两个文本合并 employee文件中记录了工号和姓名 cat employee.txt: 100 Jason Smith 200 John Doe...
    99+
    2022-06-04
    文本 文件合并 python
  • 基于Python实现文件大小输出
    在数据库中存储时,使用 Bytes 更精确,可扩展性和灵活性都很高。 输出时,需要做一些适配。 1. 注意事项与测试代码 1.需要考虑 sizeInBytes 为 None 的场景。 2.除以 1024...
    99+
    2022-06-04
    文件大小 Python
  • Java实现文件的分割与合并
    本文实例为大家分享了Java实现文件的分割与合并的具体代码,供大家参考,具体内容如下 一、文件分割实现思想 1、设置分割文件(块)的大小; 2、通过输入流获取源文件的大小; 3、...
    99+
    2022-11-12
  • Android实现文件的分割和组装
    本文以实例形式讲述了Android实现文件的分割和组装的方法,主要是针对UDP数据包进行的分割和组装。分享给大家供大家参考之用。具体方法如下: 一般来说,在使用UDP数据包发送...
    99+
    2022-06-06
    Android
  • nodejs实现遍历文件夹并统计文件大小
    离开公司已经有2个多个月,之前写了不少工具,但在离开公司的当天,我亲手把一年来的所有积累工具和代码都格式化了。今天想起之前在项目中遇到的一个问题,今天将其记录下来。 我在优化内存的时候,遇到一些图片在加载...
    99+
    2022-06-04
    文件大小 遍历 文件夹
  • Python实现文件及文件夹操作大全
    目录一、文件操作1.1 文件常规操作1.2 文件读写1.3 文件相关属性访问二、文件夹操作2.1 文件夹常规操作2.2 遍历文件夹2.3 文件夹相关属性访问三、其他相关操作3.1 工...
    99+
    2022-11-11
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作