本文实例讲述了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实现将一个大文件按段落分隔为多个小文件的简单操作方法

本文地址: http://www.cppcns.com/jiaoben/python/187732.html

python分割文件为小文件_Python实现将一个大文件按段落分隔为多个小文件的简单操作方法...相关推荐

  1. kettle将多个文件压缩_如何使用WinRAR将一个大文件压缩成多个小的压缩包

    目录 1.使用WinRAR将一个大文件压缩成多个小的压缩包 2.使用WinRAR将多个小的压缩包,解压/合并成一个大文件 3.结尾 / 在现实生活中,受文件大小的限制,在传输的过程往往出现困难,如:邮 ...

  2. python dataframe去掉索引_python中pandas.DataFrame(创建、索引、增添与删除)的简单操作方法介绍...

    这篇文章python中pandas.DataFrame(创建.索引.增添与删除)的简单操作方法介绍,其中包括创建.索引.增添与删除等的相关资料,文中介绍的非常详细,需要的朋友可以参考借鉴,下面来一起看 ...

  3. python上传文件到linux服务器_python上传大文件到服务器报错

    项目需要,在mac上将打包好的文件(四五百兆)自动上传到web后台,用了两种方式上传,都报了类似的错误,在windows和linux上测试不会报错,但是到了mac打包机上就会报错: ①第一种报错: T ...

  4. python批量上传执行脚本_python 写的批量操作远程主机脚本(命令执行,上传、下载文件)...

    本帖最后由 Matthew0701 于 2011-4-28 21:45 编辑 最近在学习python,借助fabric模块写了个批量操作服务器的脚本,在此分享给大家,如有不足之处,欢迎大家指正 准备工 ...

  5. python中定义函数常用关键字_Python 中定义函数的关键字是 _________________ 。_学小易找答案...

    [其它]实验4-串和数组-实验任务书.docx [填空题]表达式 'abc' in ['abcdefg'] 的值为______________. [填空题]已知 x = range(1,4) 和 y ...

  6. python与量化投资从基础到实战王小川_Python量化投资从基础到实战现场班_王小川老师主讲-经管之家官网!...

    课程特色: 1:现场教学,可现场和老师互动,解决从业疑惑: 2:课程内容丰富,囊括了许多量化投资的理论知识: 3:基础班从零开始,快速掌握Python金融编程所需: 4:教学过程深入浅出, 以实例与实 ...

  7. python实现聊天小程序_Python使用django框架实现多人在线匿名聊天的小程序

    最近看到好多设计类网站,都提供了多人在线匿名聊天的小功能,感觉很有意思,于是基于python的django框架自己写了一个,支持手动实时更名,最下方提供了完整的源码. 在线聊天地址(无需登录,开一个窗 ...

  8. python怎么画小海龟_Python 海龟 turtle 画图实战任务(一):让小海龟留下Z字形的足迹以及绘制一个小于号<...

    使用 turtle 模块,常规的结束语句 ==> turtle.done()/turtle.mainloop() 示例代码如下: # -*- coding: UTF-8 -*- "&q ...

  9. python 分割不等长字符串表格_Python字符串---固定长度分割字符串

    固定长度分割字符串 两个一组分割 处理mac地址,添加中横线 import re mac = '50E549E32ECB' # 方法一 mac1 = '' tmp = list(mac) print( ...

最新文章

  1. Python编程练习:使用 turtle 库完成叠边形的绘制
  2. Symantec Backup Exec 2012 Agent For Linux安装
  3. hibernate 多对多(many-to-many)
  4. 【Android】Android适配器之ArrayAdapter、SimpleAdapter和BaseAdapter的简单用法
  5. 光纤收发器在高清网络视频监控工程项目中的应用
  6. iOS 开发屏幕适配尺寸
  7. 多线程并发-java内存模型和计算机基础
  8. java实现动态规划求解给定矩阵的和最大的子数组(矩阵中数字正负均存在)
  9. html5学习笔记(progress)
  10. 我的世界boat运行库JAVA10_我的世界boat运行库
  11. 用pdftocairo将PDF图片转成svg矢量图
  12. python 自动解析外文时间日期
  13. 金蝶K3修改核算项目锁定字段的默认长度(以物料主数据的助记码为例)
  14. 上海成为50岁以上房东数量最多的中国城市,成都、青岛、重庆、杭州紧随其后...
  15. JS:原生JS实现message消息提示框
  16. 写作真的可以赚钱吗?
  17. 2022.07.19 MySQL唯一索引
  18. 程序员,你需要些“脑力运动”了
  19. 通过mtd读写flash_NOR Flash读写原理及驱动
  20. 网络号 IP地址 子网掩码如何计算

热门文章

  1. DropDownList第一个默认值
  2. MySQL 数据库基础
  3. oracle-day1
  4. .NET中JSON的序列化和反序列化
  5. 使用zabbix如何自动清理30天前的数据
  6. Ubuntu下OpenResty 搭建高性能服务端
  7. Windows电脑无法上网排错思路
  8. Nexpose漏扫使用步骤
  9. xshell 自动断开解决方法
  10. E: Could not get lock /var/lib/dpkg/lock-frontend - open (11: Resource temporarily unavailable)