python - 在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
解决方案
尝试这个:
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 库。
推荐阅读
- ios - 传递文本字段文本值Swift 4
- css - 将绝对元素固定到位置静态最大宽度容器的边缘
- go - 如何将日志从单独的包写入单独的文件
- continuous-integration - 基于 docker-compose 的 CI?
- laravel - 具有多对多和自引用的 Laravel/Eloquent 模型
- bash - 如何删除一个文件中存在于另一个文件中的行?
- python - 瓷砖地图Python 3.6上的瓷砖碰撞
- node.js - 'node' 不是内部或外部命令、可运行程序或批处理文件。在 git bash 中
- proxy - apache中的条件反向代理
- java - 无法使用 SSE 发送消息(Java Servlet + ES6 JS)