首页 > 解决方案 > 在python中删除.txt文件中的所有章节和相应的标题

问题描述

我正在用python写一本.txt格式的书。

我想删除所有章节和相应的标题。所有这些都是通过 CHAPTER 这个词来介绍的,如下例所示:

\n\n\n\n第 2 章。我观察\n\n\n

在大写单词 CHAPTER 之前都有四个 \n\n\n\n,但在章节标题之后,\n 的数字会有所不同。所以我想强加的条件是:每当找到 \n\n\n\nCHAPTER 时,它会删除直到并包括下一个 \n 的文本。

\n\n\n\n第 2 章我观察\n\n\n -----> \n\n

标签: pythontextnlp

解决方案


尝试这个:

import re

with open('book.txt', 'r') as f:
    text = ''.join(f.readlines())

text = re.sub(r'\n{4}CHAPTER.*\n+', '\n\n', text)

with open('book.txt', 'w') as f:
    f.write(text)

它匹配以下所有序列:

  • 4 个换行符 ( \n{4})
  • 文本“章节”
  • 后跟一些标题文本 ( .*)
  • 以及之后的任何数量的换行符 ( \n+)

并用两个换行符 ( ) 替换它们\n\n

注意:此代码用修改覆盖原始文件。您可能想要写入不同的文件并保留原始文件以进行不同的分析。否则,您可以直接将数据传递给您的 NLP 库。


推荐阅读