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

原创 2015年07月08日 00:40:20

今天帮同学处理一点语料。语料文件有点大,并且是以连续两个换行符作为段落标志,他想把它按段落分隔成多个小文件,即每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 按行分割文件

#!/usr/bin/env python #--*-- coding:utf-8 --*-- import os class SplitFiles(): """按行分割文件""" ...

使用Python进行文件的分割与合并

使用Python来进行文件的分割与合并是非常简单的。 python代码如下: splitFile--将文件分割成大小为chunksize的块; mergeFile--将众多文件块合并成原来的文件; #...

python 模拟分割大文件后,多线程处理

#!/usr/bin/env python #--*-- coding:utf-8 --*-- from random import randint from time import ctime f...

python实现分割文件

我们有时候需要对大文件进行分割,从而就可以在记事本等软件中打开以便好做处理,现在使用Python实现一个文件分割的功能,可以按照指定的大小分割文件为一系列子文件。 见代码: #!/usr/bi...

python 按行分割文件

#!/usr/bin/env python #--*-- coding:utf-8 --*-- import os class SplitFiles(): """按行分割文件""" ...

文本分析--jieba中文分词

分词技术可以分为英文分词和中文分词:       对于英文分词而言,由于英文单词之间以空格来分隔,所以在进行英文分词的过程中,只需要针对空格进行划分就可以了。       对于中文分词而言,中文单...

bash shell中数组的运用:按照关键字拆分组把大文件拆成多个小文件

用户有个需求,从EBS中查出所有未计提折旧的资产,要四个字段,分公司代码(即资产标签前几位),资产标签号,资产启用日期,是否折旧,这些数据要下发给个分公司,要求各个分公司单独成一个文件。用如下sql查...
  • x6_9x
  • x6_9x
  • 2015年11月23日 16:49
  • 646

java中用文件流分割文件,用于将大文件分割成多个小文件,合并文件待续

package test; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundExcep...
  • gfdonx
  • gfdonx
  • 2015年10月05日 01:15
  • 432

多个小文件合并成一个文件

  • 2011年12月22日 18:34
  • 222KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Python将一个大文件按段落分隔为多个小文件的简单方法
举报原因:
原因补充:

(最多只允许输入30个字)