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

如何用Python拆分full change.txt中A1-A300内容并追加到对应文件?

Python实现从full change.txt拆分内容追加到对应A1-A300.txt文件

直接用正则表达式匹配每个Ax对应的内容块是最稳妥的方案,比split更适配你这种带动态标识的内容结构。以下是可直接运行的代码:

import re

# 读取源文件全部内容
with open('full change.txt', 'r', encoding='utf-8') as source_file:
    full_content = source_file.read()

# 正则匹配每个Ax的内容块:适配"If ***** Begin ****[内容]Ax End Go"格式
# re.DOTALL 让.匹配换行符,支持多行内容块
match_pattern = re.compile(r'If \*\*\*\*\* Begin \*\*\*\*\*(.*?)(A\d+) End Go', re.DOTALL)
all_blocks = match_pattern.findall(full_content)

# 遍历每个匹配到的块,追加写入对应文件
for block_content, file_tag in all_blocks:
    target_file_path = f"{file_tag}.txt"
    with open(target_file_path, 'a', encoding='utf-8') as target_file:
        # 可选:添加换行分隔,避免新追加内容和原有内容连在一起
        target_file.write(block_content.strip() + '\n\n')

关键说明

  1. 正则表达式适配:

    • 如果你文件里的*****不是5个星号,或者Begin前后的空格有差异,直接调整正则里的\*\*\*\*\*和空格部分即可
    • .*?是非贪婪匹配,确保每个块只会匹配到对应Ax的End Go为止,不会把多个块合并
  2. 文件操作细节:

    • 使用'a'模式打开目标文件,确保是追加写入,不会覆盖原有内容
    • 指定encoding='utf-8'避免中文等特殊字符乱码,若你的文件是其他编码(比如gbk),替换成对应编码即可
    • block_content.strip()会去掉内容块前后的空白字符,按需保留或删除这部分
  3. 替代思路(如果正则不适用):
    若坚持用split,可以先按If ***** Begin ****拆分所有块,再遍历每个块提取Ax标识和内容,但正则的可读性和稳定性更高。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 07:10:12