You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Python移除大文本文件中的特定重复字符串?

用Python清理Books app导出笔记中的重复引用片段

核心思路

先定位你要移除的固定重复片段(比如书籍出处、版权声明这类统一格式的内容),然后通过读取文件内容、批量替换/过滤的方式删掉这些重复内容,同时保留原有的高亮笔记格式。

基础实现(固定片段匹配)

如果重复片段是完全一致的固定文本,用简单的字符串替换就能解决:

# 替换成你实际要移除的重复内容
REMOVE_CONTENT = "---《XX书籍》 版权声明:本内容来自Google Books,未经许可不得转载"

# 读取原笔记文件
with open("books_notes.txt", "r", encoding="utf-8") as f:
    raw_content = f.read()

# 批量移除所有重复片段
cleaned_content = raw_content.replace(REMOVE_CONTENT, "")

# 保存清理后的结果
with open("cleaned_notes.txt", "w", encoding="utf-8") as f:
    f.write(cleaned_content)

进阶实现(带变量的重复片段)

如果重复片段带变量(比如每条笔记后跟着不同页码,格式是---《XX书籍》 第X页),用正则表达式匹配更灵活:

import re

# 正则规则:匹配以---《你的书籍名》开头的整行内容,根据实际格式调整
remove_pattern = r"---《XX书籍》.*\n"

with open("books_notes.txt", "r", encoding="utf-8") as f:
    raw_content = f.read()

# 批量替换所有符合规则的行
cleaned_content = re.sub(remove_pattern, "", raw_content)

with open("cleaned_notes.txt", "w", encoding="utf-8") as f:
    f.write(cleaned_content)

逐行过滤方案(适合按行分隔的笔记)

如果你的笔记是按行排列的,也可以逐行检查过滤:

REMOVE_KEYWORD = "---《XX书籍》"

cleaned_lines = []
with open("books_notes.txt", "r", encoding="utf-8") as f:
    for line in f:
        # 跳过包含重复片段的行
        if REMOVE_KEYWORD not in line:
            cleaned_lines.append(line)

with open("cleaned_notes.txt", "w", encoding="utf-8") as f:
    f.writelines(cleaned_lines)

注意事项

  • 操作前务必备份原笔记文件,避免误操作丢失内容
  • 调整REMOVE_CONTENT或正则规则时,要和你实际的重复片段完全匹配

内容的提问来源于stack exchange,提问作者fzzrxx

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 13:20:03