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 解析XML python模块xml.dom解析xml实例代码
Feb 07 Python
用Python进行TCP网络编程的教程
Apr 29 Python
pymongo实现多结果进行多列排序的方法
May 16 Python
python密码错误三次锁定(实例讲解)
Nov 14 Python
CentOS 6.5中安装Python 3.6.2的方法步骤
Dec 03 Python
Python爬虫实现百度图片自动下载
Feb 04 Python
python如何拆分含有多种分隔符的字符串
Mar 20 Python
Python简单计算给定某一年的某一天是星期几示例
Jun 27 Python
OpenCV 边缘检测
Jul 10 Python
Python脚本调试工具安装过程
Jan 11 Python
Python如何利用正则表达式爬取网页信息及图片
Apr 17 Python
Python docx库删除复制paragraph及行高设置图片插入示例
Jul 23 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
8个必备的PHP功能开发
2015/10/02 PHP
php开发微信支付获取用户地址
2015/10/04 PHP
实例讲解PHP设计模式编程中的简单工厂模式
2016/02/29 PHP
PHP中使用jQuery+Ajax实现分页查询多功能操作(示例讲解)
2017/09/17 PHP
juqery 学习之五 文档处理 包裹、替换、删除、复制
2011/02/11 Javascript
html中table数据排序的js代码
2011/08/09 Javascript
JavaScript修改作用域外变量的方法
2016/03/25 Javascript
ECHO.js 纯javascript轻量级延迟加载的实例代码
2016/05/24 Javascript
JS常见简单正则表达式验证功能小结【手机,地址,企业税号,金额,身份证等】
2017/01/22 Javascript
JS实现禁止用户使用Ctrl+鼠标滚轮缩放网页的方法
2017/04/28 Javascript
创建echart多个联动的示例代码
2018/11/23 Javascript
详解vuex commit保存数据技巧
2018/12/25 Javascript
jQuery中使用validate插件校验表单功能
2019/05/24 jQuery
JQuery实现ul中添加LI和删除指定的Li元素功能完整示例
2019/10/16 jQuery
浅谈vue中get请求解决传输数据是数组格式的问题
2020/08/03 Javascript
vue任意关系组件通信与跨组件监听状态vue-communication
2020/10/18 Javascript
python实现简易内存监控
2018/06/21 Python
Python实现的从右到左字符串替换方法示例
2018/07/06 Python
Python中字符串String的基本内置函数与过滤字符模块函数的基本用法
2019/05/27 Python
Ubuntu+python将nii图像保存成png格式
2019/07/18 Python
使用Python快乐学数学Github万星神器Manim简介
2019/08/07 Python
python文件绝对路径写法介绍(windows)
2019/12/25 Python
基于Tensorflow:CPU性能分析
2020/02/10 Python
Python unittest discover批量执行代码实例
2020/09/08 Python
Python之字符串的遍历的4种方式
2020/12/08 Python
10个很棒的 CSS3 开发工具 推荐
2011/05/16 HTML / CSS
FitFlop澳大利亚官网:英国符合人体工学的鞋类品牌
2017/06/05 全球购物
家具厂厂长岗位职责
2014/01/01 职场文书
材料加工工程求职信
2014/02/19 职场文书
《火烧云》教学反思
2014/04/12 职场文书
公司董事长助理工作职责
2014/07/12 职场文书
模范教师事迹材料
2014/12/16 职场文书
仓库统计员岗位职责
2015/04/14 职场文书
Django使用echarts进行可视化展示的实践
2021/06/10 Python
Python基础教程,Python入门教程(超详细)
2021/06/24 Python
Java获取e.printStackTrace()打印的信息方式
2021/08/07 Java/Android