python分割文件为小文件_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');

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 可以使用 Python 的内置函数 open() 和 write() 来实现。 首先,使用 open() 函数打开要操作的 txt 文件,然后使用 read() 方法将整个文件读入内存,最后使用 split() 方法文件按照段落分割一个个小字符串。 接下来,遍历这些小字符串,并使用循环变量的值作为新文件的名字,使用 open() 函数创建新文件并使用 write() 函数将字符串写入新文件中。 示例代码如下: ```python # 打开文件 with open('原文件.txt', 'r') as f: # 读取文件内容 text = f.read() # 按照段落分割文件 paragraphs = text.split('\n\n') # 遍历段落 for i, p in enumerate(paragraphs): # 使用循环变量的值作为新文件的名字 filename = '新文件{}.txt'.format(i) # 创建新文件 with open(filename, 'w') as f: # 写入字符串 f.write(p) ``` 希望这个回答对你有帮助! ### 回答2: 要用Python一个txt文件中的段落分割成小的txt文件,我们可以按照以下步骤来实现: 1. 打开源文件:使用open函数打开要分割的txt文件,并将其读取为一个字符串。 ``` source_file = open("source.txt", "r") text = source_file.read() source_file.close() ``` 2. 分割段落:通过在文本中查找段落分隔符分割它们。一种常见的段落分隔符两个换行符("\n\n")。使用split函数进行分割,得到段落列表。 ``` paragraphs = text.split("\n\n") ``` 3. 创建小txt文件:遍历段落列表,并将每个段落写入一个新的txt文件中。 ``` i = 1 for paragraph in paragraphs: output_file = open(f"paragraph_{i}.txt", "w") output_file.write(paragraph) output_file.close() i += 1 ``` 以上代码将会创建多个txt文件文件名格式为“paragraph_数字.txt”,每个文件中包含一个段落。你可以根据需要自行调整文件名称和路径。 注意:在使用此代码之前,确保已经安装了Python,并且txt文件位于合适的路径下。 ### 回答3: 首先,我们可以使用Python文件读取功能,将整个txt文件读入到一个字符串变量中。 然后,可以使用字符串的split()方法,将整个文本按照段落分割一个个小的字符串。 接下来,可以遍历这些小字符串,并创建新的文本文件,将每个小字符串写入到新文件中。 下面是一个示例代码: ```python # 打开要读取的txt文件 with open('input.txt', 'r', encoding='utf-8') as f: # 将整个文本读取到一个字符串变量中 content = f.read() # 使用split()方法将文本按照段落分割一个个小的字符串 paragraphs = content.split('\n\n') # 遍历每个小字符串,并创建新的文本文件 for i, paragraph in enumerate(paragraphs): # 构造新文件名 new_filename = f'paragraph_{i+1}.txt' with open(new_filename, 'w', encoding='utf-8') as f: # 将小字符串写入新文件中 f.write(paragraph) ``` 以上代码假设要处理的文件名为`input.txt`,它会将该文件中的段落分割一个个小的txt文件,分别命名为`paragraph_1.txt`、`paragraph_2.txt`等。每个小文件中将会保存对应的段落内容。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值