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

使用Python批量匹配合并对应编号的TXT文件生成新文件的技术问询

批量合并配对TXT文件的解决方案

很简单,我来帮你把单对文件的合并逻辑扩展成批量处理的版本,同时教你如何自动获取目录中的文件列表。

核心思路

我们需要:

  1. 自动找出目录中所有的text_[数字].txt文件
  2. 从每个文件名中提取对应的数字编号
  3. 用这个编号找到匹配的comments_[数字].txt文件
  4. 循环执行你已经写好的合并逻辑,生成对应的feedback_[数字].txt

完整代码实现

这里提供两种提取编号的方式(正则表达式更稳健,字符串分割更简洁),你可以根据自己的需求选择:

方法1:使用正则表达式提取编号(推荐,适配复杂文件名格式)

import glob
import re

# 获取目录下所有text_开头的TXT文件
text_files = glob.glob("text_*.txt")

# 遍历每个text文件
for text_file in text_files:
    # 用正则匹配文件名中的数字部分,比如从text_20.txt中提取"20"
    num_match = re.search(r'(\d+)', text_file)
    if num_match:
        file_num = num_match.group(1)
        # 构建对应的comments和feedback文件名
        comments_file = f"comments_{file_num}.txt"
        feedback_file = f"feedback_{file_num}.txt"
        
        # 执行合并操作(复用你原有的单对合并逻辑)
        with open(feedback_file, "w", encoding='utf-8') as outfile:
            # 先写入text内容,再写入comments内容
            for filename in [text_file, comments_file]:
                with open(filename, encoding='utf-8') as infile:
                    outfile.write(infile.read())
        print(f"已完成合并:{feedback_file}")

方法2:使用字符串分割提取编号(适合固定格式的文件名)

如果你的文件名格式绝对固定(比如永远是text_数字.txt),可以用更简单的字符串分割:

import glob
import os

text_files = glob.glob("text_*.txt")

for text_file in text_files:
    # 分割文件名提取数字:text_0.txt -> split("_")得到["text", "0.txt"] -> 取第二个元素去掉后缀得到"0"
    file_num = text_file.split("_")[1].replace(".txt", "")
    comments_file = f"comments_{file_num}.txt"
    feedback_file = f"feedback_{file_num}.txt"
    
    # 可选:增加文件存在性检查,避免因文件缺失报错
    if os.path.exists(comments_file):
        with open(feedback_file, "w", encoding='utf-8') as outfile:
            for filename in [text_file, comments_file]:
                with open(filename, encoding='utf-8') as infile:
                    outfile.write(infile.read())
        print(f"成功生成:{feedback_file}")
    else:
        print(f"警告:未找到对应编号的评论文件 {comments_file}")

关键细节说明

  • glob模块:用通配符text_*.txt可以快速筛选出所有目标文件,比手动列名单方便得多,而且能自动适配数量变化的情况。
  • 编码设置:打开文件时指定encoding='utf-8'可以避免中文等非ASCII字符出现乱码问题,如果你的文件是其他编码(比如GBK),替换成对应的编码即可。
  • 健壮性优化:方法2中的os.path.exists()检查可以防止因意外缺失文件导致脚本崩溃,适合生产环境使用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.29 22:57:32