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

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

2023-06-14 14:06:47 704人浏览 八月长安

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

摘要

小编给大家分享一下python如何实现大文本文件分割成多个小文件,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!Python可以做什么Python是一种编程语言,内置了许多有效的工具,Python几乎无所不能,该语言通俗易懂

小编给大家分享一下python如何实现大文本文件分割成多个小文件,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!

Python可以做什么

Python是一种编程语言,内置了许多有效的工具,Python几乎无所不能,该语言通俗易懂、容易入门、功能强大,在许多领域中都有广泛的应用,例如最热门的大数据分析人工智能web开发等。

方法一:

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

代码:

#coding:utf-8#将大文本文件分割成多个小文本文件import ossourceFileName = "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 + 1def 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中是完整的记录,判断方法见代码

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

方法三:基于大小分割

# -*- coding: utf-8 -*-#这种方法是按照大小分割文件,会存在同一行被分割在两个文件中的情况import osfilename = "track.log"#需要进行分割的文件size = 10000000 #分割大小10Mdef 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)

看完了这篇文章,相信你对“python如何实现大文本文件分割成多个小文件”有了一定的了解,如果想了解更多相关知识,欢迎关注编程网Python频道,感谢各位的阅读!

--结束END--

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

本文链接: https://www.lsjlt.com/news/271432.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
  • VBS如何实现文本文件分割脚本
    这篇文章给大家分享的是有关VBS如何实现文本文件分割脚本的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。而Windows下没有一个现存的比较好用的分割工具,所以我用VBS做了一个文本文件的分割工具,和各位网友共享。...
    99+
    2023-06-08
  • 怎样把大Excel文件拆成多个小文件
    怎样把大Excel文件拆成多个小文件,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。出于各种原因,有时我们要将一个大Excel拆成一些小文件。这种算法可以用VBA实现,但代码...
    99+
    2023-06-03
  • Python实现文本文件拆分写入到多个文本文件的方法
    引言 将一个txt文本文件中的内容行拆分固定的行数,自动分批写入到多个文本文件。 比如:一个源txt文件有5100行数据,每1000行插入到一个txt文件,最后获得6个txt文件(5...
    99+
    2022-11-12
  • 使用Python怎么将一个文本文件拆分到多个文本文件
    使用Python怎么将一个文本文件拆分到多个文本文件?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。python可以做什么Python是一种编程语言,内置了许多有效的工具,Pyt...
    99+
    2023-06-14
  • 如何将一个CSV格式的文件分割成两个CSV文件
    目录将一个CSV格式的文件分割成两个CSV文件定义split_csv函数调用上述函数将CSV文件以某列为条件分类切割大概步骤上代码 将一个CSV格式的文件分割成两个CSV文...
    99+
    2022-11-11
  • Python实现将一个大文件按段落分隔为多个小文件的简单操作方法
    本文实例讲述了Python实现将一个大文件按段落分隔为多个小文件的简单操作方法。分享给大家供大家参考,具体如下: 今天帮同学处理一点语料。语料文件有点大,并且是以连续两个换行符作为段落标志,他想把它按段落分...
    99+
    2022-06-04
    多个 段落 操作方法
  • python与php实现分割文件代码
    前两天有个朋友说,想实现一个文本文件按照固定行数进行分割成多个文本文件,却不知如何实现。如果数据量小手动分割下就好了,如果数据量很大的话手动完成实在太耗费人力了,也不现实。那么就需要借助脚本去实现。既然有朋...
    99+
    2022-06-04
    代码 文件 python
  • Python按行读取文件的实现方法【小文件和大文件读取】
    本文实例讲述了Python按行读取文件的实现方法。分享给大家供大家参考,具体如下: 小文件: #coding=utf-8 #author: walker #date: 2013-12-30 #funct...
    99+
    2022-06-04
    文件 大文件 方法
  • 多个上传文件如何使用js验证文件格式和大小
    小编给大家分享一下多个上传文件如何使用js验证文件格式和大小,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!html部分:&nbs...
    99+
    2022-10-19
  • python如何获得文件大小
    使用python获取文件大小的方法:1.新建python项目;2.导入os模块;3.使用os.stat()函数创建文件对象;4.使用st_size函数获取文件大小;具体步骤如下:首先,打开python,并新建一个python项目;pytho...
    99+
    2022-10-12
  • python如何获取文件大小
    Python中可以通过`os.path`模块中的`getsize()`函数来获取文件的大小。使用方法如下:```pythonimpo...
    99+
    2023-08-15
    python
  • 云服务器怎么分割成多个虚拟主机的文件
    云服务器通常可以分割成多个虚拟主机的文件,以便用户可以在不同的位置访问它们。常见的方法包括以下步骤: 创建新主机 在一个虚拟主机上创建一个独立的主机,通常使用DNS服务器来指定目标位置。然后,将一个主机分配给一个IP地址,以实现跨地域...
    99+
    2023-10-27
    多个 虚拟主机 服务器
  • 基于Python实现文件大小输出
    在数据库中存储时,使用 Bytes 更精确,可扩展性和灵活性都很高。 输出时,需要做一些适配。 1. 注意事项与测试代码 1.需要考虑 sizeInBytes 为 None 的场景。 2.除以 1024...
    99+
    2022-06-04
    文件大小 Python
  • Logrotate如何实现每小时切割日志文件
    目录一、Logrotate背景介绍1.1 安装二、logrotate配置介绍三、实现每小时切割日志文件3.1、添加 logrotate 配置文件3.2 执行命令3.3加入定时任务总结...
    99+
    2023-05-19
    Logrotate切割日志文件 Logrotate日志文件切割 日志切割Logrotate
  • VBS如何实现iPod文本分割器
    这篇文章将为大家详细讲解有关VBS如何实现iPod文本分割器,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。因此暑假闲暇编写了这个简短精悍的脚本版的分割器。脚本版的最大的好处可以由使用者进行DIY。 具体情...
    99+
    2023-06-08
  • python中如何分割文件名与路径
    python中分割文件名与路径的方法:1、在win操作系统中找到python程序目录;2、打开idle工具;3、在idle中新建一个shell脚本;4、输入“import os”指令导入os模块;5、通过“os.path.abspath(文...
    99+
    2022-10-20
  • Linux下如何实现文件切割
    这篇文章主要介绍了Linux下如何实现文件切割,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。linux下文件分割可以通过split命令来实现,可以指定按行数分割和安大小分割两...
    99+
    2023-06-28
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作