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异步回调机制实现和使用方法
Nov 26 Python
python中随机函数random用法实例
Apr 30 Python
python删除过期文件的方法
May 29 Python
python获取代理IP的实例分享
May 07 Python
基于python代码实现简易滤除数字的方法
Jul 17 Python
如何利用Python分析出微信朋友男女统计图
Jan 25 Python
Django  ORM 练习题及答案
Jul 19 Python
python os.fork() 循环输出方法
Aug 08 Python
基于Python数据结构之递归与回溯搜索
Feb 26 Python
python之pygame模块实现飞机大战完整代码
Nov 29 Python
PyQt实现计数器的方法示例
Jan 18 Python
Elasticsearch 批量操作
Apr 19 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生成带有雪花背景的验证码
2008/09/28 PHP
精美漂亮的php分页类代码
2013/04/02 PHP
windows7下php开发环境搭建图文教程
2015/01/06 PHP
php计算整个目录大小的方法
2015/06/01 PHP
php中Snoopy类用法实例
2015/06/19 PHP
ThinkPHP项目分组配置方法分析
2016/03/23 PHP
PHP模板引擎Smarty内建函数foreach,foreachelse用法分析
2016/04/11 PHP
php实现连接access数据库并转txt写入的方法
2017/02/08 PHP
微信公众平台开发-微信服务器IP接口实例(含源码)
2017/03/05 PHP
JavaScript基本对象
2007/01/11 Javascript
js中onload与onunload的使用示例
2013/08/25 Javascript
Javascript堆排序算法详解
2014/12/03 Javascript
bootstrap监听滚动实现头部跟随滚动
2016/11/08 Javascript
关于iframe跨域POST提交的方法示例
2017/01/15 Javascript
vue.js中v-on:textInput无法执行事件问题的解决过程
2017/07/12 Javascript
vue router学习之动态路由和嵌套路由详解
2017/09/21 Javascript
Angularjs cookie 操作实例详解
2017/09/27 Javascript
本地搭建微信小程序服务器的实现方法
2017/10/27 Javascript
Vue+mui实现图片的本地缓存示例代码
2018/05/24 Javascript
js实现按钮开关单机下拉菜单效果
2018/11/22 Javascript
vue设置动态请求地址的例子
2019/11/01 Javascript
Vue常用的全选/反选的示例代码
2020/02/19 Javascript
element中的$confirm的使用
2020/04/26 Javascript
原生JS实现音乐播放器的示例代码
2021/02/25 Javascript
Python3将jpg转为pdf文件的方法示例
2019/12/13 Python
装上这 14 个插件后,PyCharm 真的是无敌的存在
2021/01/11 Python
复古斯堪的纳维亚儿童服装:Baby go Retro
2017/09/09 全球购物
大学生职业生涯规划范文
2014/01/22 职场文书
个人现实表现材料
2014/02/04 职场文书
美术学专业求职信
2014/07/23 职场文书
民主生活会对照检查材料
2014/09/22 职场文书
六五普法宣传标语
2014/10/06 职场文书
用电申请报告范文
2015/05/18 职场文书
中学语文教学反思
2016/02/16 职场文书
深入浅析python3 依赖倒置原则(示例代码)
2021/07/09 Python
如何解决php-fpm启动不了问题
2021/11/17 PHP