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网络编程之TCP通信实例和socketserver框架使用例子
Apr 25 Python
Python提示[Errno 32]Broken pipe导致线程crash错误解决方法
Nov 19 Python
python正则表达式中的括号匹配问题
Dec 14 Python
10款最好的Web开发的 Python 框架
Mar 18 Python
浅析AST抽象语法树及Python代码实现
Jun 06 Python
举例讲解Python编程中对线程锁的使用
Jul 12 Python
python 监听salt job状态,并任务数据推送到redis中的方法
Jan 14 Python
Python和Go语言的区别总结
Feb 20 Python
opencv3/C++ 平面对象识别&透视变换方式
Dec 11 Python
PyTorch里面的torch.nn.Parameter()详解
Jan 03 Python
Python绘制动态水球图过程详解
Jun 03 Python
Python爬取微信小程序通用方法代码实例详解
Sep 29 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
基于mysql的bbs设计(二)
2006/10/09 PHP
php 修改zen-cart下单和付款流程以防止漏单
2010/03/08 PHP
php 解决旧系统 查出所有数据分页的类
2012/08/27 PHP
php自动给网址加上链接的方法
2015/06/02 PHP
php版微信开发之接收消息,自动判断及回复相应消息的方法
2016/09/23 PHP
6个常见的 PHP 安全性攻击实例和阻止方法
2020/12/16 PHP
JavaScript修改css样式style
2008/04/15 Javascript
SeaJS入门教程系列之SeaJS介绍(一)
2014/03/03 Javascript
javascript操作符"!~"详解
2015/02/10 Javascript
jQuery实现返回顶部功能
2016/02/23 Javascript
AngularJS实现根据变量改变动态加载模板的方法
2016/11/04 Javascript
Javarscript中模块(module)、加载(load)与捆绑(bundle)详解
2017/05/28 Javascript
Node.js的Koa实现JWT用户认证方法
2018/05/05 Javascript
深入koa-bodyparser原理解析
2019/01/16 Javascript
JavaScript简单编程实例学习
2020/02/14 Javascript
在vant中使用时间选择器和popup弹出层的操作
2020/11/04 Javascript
JavaScript实现消消乐的源代码
2021/01/12 Javascript
python中while循环语句用法简单实例
2015/05/07 Python
利用Python中的pandas库对cdn日志进行分析详解
2017/03/07 Python
python3操作mysql数据库的方法
2017/06/23 Python
python解决字符串倒序输出的问题
2018/06/25 Python
Python3 jupyter notebook 服务器搭建过程
2018/11/30 Python
浅谈Python中的可迭代对象、迭代器、For循环工作机制、生成器
2019/03/11 Python
python PyAutoGUI 模拟鼠标键盘操作和截屏功能
2019/08/04 Python
python3 map函数和filter函数详解
2019/08/26 Python
使用python 的matplotlib 画轨道实例
2020/01/19 Python
python 如何设置守护进程
2020/10/29 Python
千禧酒店及度假村官方网站:Millennium Hotels and Resorts
2019/05/10 全球购物
MIRTA官网:手工包,100%意大利制造
2020/02/11 全球购物
Otiumberg官网:英国半精致珠宝品牌
2021/01/16 全球购物
消防安全责任书范本
2014/04/15 职场文书
国际贸易系求职信
2014/08/09 职场文书
教师党的群众路线教育实践活动个人对照检查材料
2014/09/23 职场文书
2014年妇联工作总结
2014/11/21 职场文书
软件项目经理岗位职责
2015/04/01 职场文书
《文化苦旅》读后感:阅读,让人诗意地栖居在大地上
2019/12/24 职场文书