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

 更新时间:2017年04月17日 10:31:06   作者:捂汗县长  
这篇文章主要介绍了Python实现将一个大文件按段落分隔为多个小文件的简单操作方法,涉及Python针对文件的读取、遍历、转换、写入等相关操作技巧,需要的朋友可以参考下

本文实例讲述了Python实现将一个大文件按段落分隔为多个小文件的简单操作方法。分享给大家供大家参考,具体如下:

今天帮同学处理一点语料。语料文件有点大,并且是以连续两个换行符作为段落标志,他想把它按段落分隔成多个小文件,即每3个段落组成一个新文件。由于以前没有遇到过类似的操作,在网上找了一些相似的方法,看起来都有点复杂。所以经尝试,自己写了一段代码,完美解决问题。

基本思路是,先读原文件内容,并使用正则表达式,依据\n\n进行切片处理,结果为一个列表,其中每一个列表元素都存放一个切片中的内容;然后创建一个写文件的句柄;接下来遍历切片列表,并写入当前切片内容,判断是否已经写入了3个段落,如果不是,则继续读写下一个切片,如果已经够3个,则关闭之前的写文件句柄,以不同的文件名重新创建一个新的写文件句柄,循环结束,等待读写下一个切片。

# -*- coding:utf8 -*-
import re;
p=re.compile('\n\n',re.S);
fileContent=open('files/办公室.txt','r',encoding='utf8').read();#读文件内容
paraList=p.split(fileContent) #根据换行符对文本进行切片
fileWriter=open('files/0.txt','a',encoding='utf8');#创建一个写文件的句柄
for paraIndex in range(len(paraList)):#遍历切片后的文本列表
  fileWriter.write(paraList[paraIndex]);#先将列表中第一个元素写入文件中
  if((paraIndex+1)%3==0):#判断是否写够3个切片,如果已经够了
    fileWriter.close(); #关闭当前句柄
    fileWriter=open('files/'+str((paraIndex+1)/3)+'.txt','a',encoding='utf8'); #重新创建一个新的句柄,等待写入下一个切片元素。注意这里文件名的处理技巧。
fileWriter.close();#关闭最后创建的那个写文件句柄
print('finished');

更多关于Python相关内容感兴趣的读者可查看本站专题:《Python文件与目录操作技巧汇总》、《Python文本文件操作技巧汇总》、《Python URL操作技巧总结》、《Python图片操作技巧总结》、《Python数据结构与算法教程》、《Python Socket编程技巧总结》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》及《Python入门与进阶经典教程

希望本文所述对大家Python程序设计有所帮助。

相关文章

  • Python使用爬虫猜密码

    Python使用爬虫猜密码

    我们可以通过python 来实现这样一个简单的爬虫猜密码功能。下面就看看如何使用python来实现这样一个功能,对python爬虫猜密码相关知识感兴趣的朋友参考下吧
    2016-02-02
  • python中isoweekday和weekday的区别及说明

    python中isoweekday和weekday的区别及说明

    这篇文章主要介绍了python中isoweekday和weekday的区别及说明,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-07-07
  • Linux RedHat下安装Python2.7开发环境

    Linux RedHat下安装Python2.7开发环境

    这篇文章主要为大家详细介绍了Linux RedHat下安装Python2.7、pip、ipython环境、eclipse和PyDev环境,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-05-05
  • 使用Python进行时间序列分析的8种绘图类型

    使用Python进行时间序列分析的8种绘图类型

    时间序列数据是按时间顺序按固定时间间隔排列的观测值的集合,每个观察对应于一个特定的时间点,并且可以以各种频率(例如,每天、每月、每年)记录数据,本文介绍了几种类型的绘图,可帮助您使用 Python 进行时间序列分析,并提供使用可免费访问的数据集的详细示例
    2023-09-09
  • 2行Python代码实现给pdf文件添加水印

    2行Python代码实现给pdf文件添加水印

    你们在给PDF文件添加水印时,还在手动一页页添加吗?本文小编为大家带来了一个更方便的方法,即用Python的2行代码来实现,感兴趣的小伙伴可以学习一下
    2022-02-02
  • Python如何通过百度翻译API实现翻译功能

    Python如何通过百度翻译API实现翻译功能

    这篇文章主要介绍了Python如何通过百度翻译API实现翻译功能,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-04-04
  • Python实现统计给定列表中指定数字出现次数的方法

    Python实现统计给定列表中指定数字出现次数的方法

    这篇文章主要介绍了Python实现统计给定列表中指定数字出现次数的方法,涉及Python针对列表的简单遍历、计算相关操作技巧,需要的朋友可以参考下
    2018-04-04
  • 详解Python中的偏函数(Partial Functions)

    详解Python中的偏函数(Partial Functions)

    Python中的偏函数是来自函数式编程的一个强大工具,它的主要目标是减少函数调用的复杂性这个概念可能起初看起来有点困难理解,但一旦你明白了它的工作方式,它可能会成为你的编程工具箱中的重要组成部分,文中有相关的代码介绍,需要的朋友可以参考下
    2023-06-06
  • 使用Python实现获取文件详细信息

    使用Python实现获取文件详细信息

    Python提供了丰富的内置模块和函数,获取和操作文件的各种属性信息,比如大小、修改时间、权限以及路径等,本文将通过详细的示例代码展示如何使用Python中的os和os.path模块来获取文件属性信息,需要的可以参考下
    2023-12-12
  • Django模型序列化返回自然主键值示例代码

    Django模型序列化返回自然主键值示例代码

    这篇文章主要给大家介绍了关于Django模型序列化返回自然主键值的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用Django具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-06-06

最新评论