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


Posted in Python onApril 17, 2017

本文实例讲述了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查询Mysql时返回字典结构的代码
Jun 18 Python
python基础教程之基本内置数据类型介绍
Feb 20 Python
python 把数据 json格式输出的实例代码
Oct 31 Python
Python网络爬虫与信息提取(实例讲解)
Aug 29 Python
PyQt5主窗口动态加载Widget实例代码
Feb 07 Python
Python文件读写保存操作的示例代码
Sep 14 Python
python代码 FTP备份交换机配置脚本实例解析
Aug 01 Python
使用Python将字符串转换为格式化的日期时间字符串
Sep 01 Python
python wxpython 实现界面跳转功能
Dec 17 Python
python如何使用jt400.jar包代码实例
Dec 20 Python
window环境pip切换国内源(pip安装异常缓慢的问题)
Dec 31 Python
python numpy 矩阵堆叠实例
Jan 17 Python
Python的时间模块datetime详解
Apr 17 #Python
Python中标准模块importlib详解
Apr 16 #Python
Python 实现随机数详解及实例代码
Apr 15 #Python
Python 列表(List) 的三种遍历方法实例 详解
Apr 15 #Python
Python生成随机数组的方法小结
Apr 15 #Python
Python中文分词工具之结巴分词用法实例总结【经典案例】
Apr 15 #Python
Python结巴中文分词工具使用过程中遇到的问题及解决方法
Apr 15 #Python
You might like
PHP中__autoload和Smarty冲突的简单解决方法
2016/04/08 PHP
PHP通过文件保存和更新信息的方法分析
2019/09/12 PHP
JavaScript入门教程(9) Document文档对象
2009/01/31 Javascript
JavaScript中使用正则匹配多条,且获取每条中的分组数据
2010/11/30 Javascript
如何获取JQUERY AJAX返回的JSON结果集实现代码
2012/12/10 Javascript
javascript实现百度地图鼠标滑动事件显示、隐藏
2015/04/02 Javascript
Hammer.js+轮播原理实现简洁的滑屏功能
2016/02/02 Javascript
js实现精确到毫秒的倒计时效果
2016/08/05 Javascript
EasyUI学习之Combobox下拉列表(1)
2016/12/29 Javascript
angularJs自定义过滤器实现手机号信息隐藏的方法
2018/10/08 Javascript
ES7之Async/await的使用详解
2019/03/28 Javascript
如何用原生js写一个弹窗消息提醒插件
2019/05/24 Javascript
vue中npm包全局安装和局部安装过程
2019/09/03 Javascript
vue实现页面内容禁止选中功能,仅输入框和文本域可选
2019/11/09 Javascript
Openlayers学习之加载鹰眼控件
2020/09/28 Javascript
python中遍历文件的3个方法
2014/09/02 Python
Python基于有道实现英汉字典功能
2015/07/25 Python
python连接数据库的方法
2017/10/19 Python
Python实现的FTP通信客户端与服务器端功能示例
2018/03/28 Python
Python实现按中文排序的方法示例
2018/04/25 Python
python 2.7.13 安装配置方法图文教程
2018/09/18 Python
使用Python实现企业微信的自动打卡功能
2019/04/30 Python
python Matplotlib底图中鼠标滑过显示隐藏内容的实例代码
2019/07/31 Python
python GUI库图形界面开发之PyQt5美化窗体与控件(异形窗体)实例
2020/02/25 Python
pytorch 限制GPU使用效率详解(计算效率)
2020/06/27 Python
如何将Pycharm中调整字体大小的方式设置为"ctrl+鼠标滚轮上下滑"
2020/11/17 Python
Maison Lab荷兰:名牌Outlet购物
2018/08/10 全球购物
英国PC组件和在线电脑商店:SCAN
2019/04/18 全球购物
Oracle快照(snapshot)
2015/03/13 面试题
广告传媒专业应届生求职信
2014/03/01 职场文书
2014新课程改革心得体会
2014/03/10 职场文书
女儿满月酒致辞
2015/07/29 职场文书
小学毕业感言100字
2015/07/30 职场文书
感谢师恩主题班会
2015/08/17 职场文书
《扇形统计图》教学反思
2016/02/17 职场文书
MongoDB安装使用并实现Python操作数据库
2021/06/28 MongoDB