我的编程空间,编程开发者的网络收藏夹
学习永远不晚

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

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

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,class="lazy" data-srcName,sub):    [des_filename, extname] = os.path.splitext(class="lazy" data-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(class="lazy" data-srcName,sub,buf):    [des_filename, extname] = os.path.splitext(class="lazy" data-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如何实现大文本文件分割成多个小文件”有了一定的了解,如果想了解更多相关知识,欢迎关注编程网行业资讯频道,感谢各位的阅读!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

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

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

下载Word文档

猜你喜欢

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

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

用Python实现大文本文件切割

在实际工作中,有些场景下,因为产品既有功能限制,不支持特大文件的直接处理,需要把大文件进行切割处理。当然可以通过UltraEdit编辑工具,或者从网上下载一些文件切割器之类的。但这些要么手工操作太麻烦,要么不能满足自定义需求。而且,对程序员
2023-01-31

VBS如何实现文本文件分割脚本

这篇文章给大家分享的是有关VBS如何实现文本文件分割脚本的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。而Windows下没有一个现存的比较好用的分割工具,所以我用VBS做了一个文本文件的分割工具,和各位网友共享。
2023-06-08

Python+wxPython实现合并多个文本文件

使用Python+wxPython合并多个文本文件使用wxPython这个跨平台GUI工具包,可以创建图形用户界面应用程序。以下是如何用Python+wxPython合并文本文件:导入wxPython和os库创建一个wxApp类作为主应用程序定义事件处理函数来获取文件路径调用merge_files()函数来合并文件内容显示合并后的文本到文本框优点:图形用户界面易于使用支持选择要合并的文件显示合并后的文本限制:仅支持合并文本文件无法自定义输出文件
Python+wxPython实现合并多个文本文件
2024-04-23

怎样把大Excel文件拆成多个小文件

怎样把大Excel文件拆成多个小文件,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。出于各种原因,有时我们要将一个大Excel拆成一些小文件。这种算法可以用VBA实现,但代码
2023-06-03

使用Python怎么将一个文本文件拆分到多个文本文件

使用Python怎么将一个文本文件拆分到多个文本文件?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。python可以做什么Python是一种编程语言,内置了许多有效的工具,Pyt
2023-06-14

一文教会你如何用 Python 分割合并大文件

使用 Python 的文件读写功能就可以实现文件的分割与合并,设置每个文件的大小,然后读取指定大小的字节就写入一个新文件,接收端依次读取小文件,把读取到的字节按序写入一个文件,就可以完成合并。

python与php实现分割文件代码

前两天有个朋友说,想实现一个文本文件按照固定行数进行分割成多个文本文件,却不知如何实现。如果数据量小手动分割下就好了,如果数据量很大的话手动完成实在太耗费人力了,也不现实。那么就需要借助脚本去实现。既然有朋友想简单的完成这个任务,那么不如记
2022-06-04

Python实现将一个大文件按段落分隔为多个小文件的简单操作方法

本文实例讲述了Python实现将一个大文件按段落分隔为多个小文件的简单操作方法。分享给大家供大家参考,具体如下: 今天帮同学处理一点语料。语料文件有点大,并且是以连续两个换行符作为段落标志,他想把它按段落分隔成多个小文件,即每3个段落组成一
2022-06-04

Logrotate如何实现每小时切割日志文件

这篇文章主要介绍了Logrotate如何实现每小时切割日志文件问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
2023-05-19

VBS如何实现iPod文本分割器

这篇文章将为大家详细讲解有关VBS如何实现iPod文本分割器,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。因此暑假闲暇编写了这个简短精悍的脚本版的分割器。脚本版的最大的好处可以由使用者进行DIY。 具体情
2023-06-08

Linux下如何实现文件切割

这篇文章主要介绍了Linux下如何实现文件切割,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。linux下文件分割可以通过split命令来实现,可以指定按行数分割和安大小分割两
2023-06-28

python如何获取文件大小

Python中可以通过`os.path`模块中的`getsize()`函数来获取文件的大小。使用方法如下:```pythonimport osfile_path = 'path/to/file' # 文件路径file_size = os.
2023-08-15

Python按行读取文件的实现方法【小文件和大文件读取】

本文实例讲述了Python按行读取文件的实现方法。分享给大家供大家参考,具体如下: 小文件:#coding=utf-8 #author: walker #date: 2013-12-30 #function: 按行读取小文件 all_lin
2022-06-04

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录