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

求助:批量将TXT文件内容复制到其他文件的Python实现方案

嘿,我懂那种卡壳好久找不到思路的感觉——咱们来把这个批量处理TXT文件内容的问题搞定!

解决方案:批量复制TXT文件内容到目标文件

先基于你给出的代码片段,针对两种最常见的需求场景补全并优化代码:

场景1:把所有TXT文件内容合并到一个统一目标文件

如果你的需求是将FOLDERS目录下所有子文件夹里的TXT内容,全部汇总到一个文件里,完整代码如下:

import os

rootdir = 'FOLDERS'  # 你的根文件夹路径
target_file = 'combined_all.txt'  # 最终合并的目标文件

# 先清空目标文件(如果需要覆盖已有内容的话)
with open(target_file, 'w', encoding='utf-8') as f:
    pass

# 递归遍历所有子目录与文件
for subdir, dirs, files in os.walk(rootdir):
    for file in files:
        # 只处理TXT格式文件
        if file.endswith('.txt'):
            source_path = os.path.join(subdir, file)
            print(f"正在处理:{source_path}")
            
            # 读取源文件内容
            with open(source_path, 'r', encoding='utf-8') as f_src:
                content = f_src.read()
            
            # 追加写入目标文件,可添加分隔符区分不同文件内容
            with open(target_file, 'a', encoding='utf-8') as f_target:
                f_target.write(f"=== 来自文件:{source_path} ===\n")
                f_target.write(content)
                f_target.write("\n\n")  # 用空行分隔不同文件内容

关键细节说明:

  • os.walk(rootdir):会递归遍历根目录下的所有子文件夹和文件,不用手动处理多层目录
  • 指定encoding='utf-8':避免中文或特殊字符出现乱码问题,如果你的TXT是其他编码(比如gbk),替换成对应编码即可
  • 'a'模式写入:会在目标文件末尾追加内容,不会覆盖原有内容;如果需要每次运行都清空重写,第一次打开用'w'模式即可

场景2:将每个TXT文件内容复制到对应目标文件

如果你的需求是一对一复制(比如每个源TXT对应一个同名目标TXT,或按目录结构复制),可以用这段代码:

import os

rootdir = 'FOLDERS'
target_root = 'TARGET_FOLDERS'  # 目标文件的根目录

# 确保目标根目录存在,不存在则自动创建
os.makedirs(target_root, exist_ok=True)

for subdir, dirs, files in os.walk(rootdir):
    for file in files:
        if file.endswith('.txt'):
            source_path = os.path.join(subdir, file)
            # 保留源文件的目录结构,在目标目录中创建对应路径
            relative_path = os.path.relpath(source_path, rootdir)
            target_path = os.path.join(target_root, relative_path)
            
            # 创建目标文件所在的子目录(如果不存在)
            os.makedirs(os.path.dirname(target_path), exist_ok=True)
            
            # 复制内容
            with open(source_path, 'r', encoding='utf-8') as f_src:
                content = f_src.read()
            with open(target_path, 'w', encoding='utf-8') as f_target:
                f_target.write(content)
            
            print(f"已复制:{source_path} → {target_path}")

额外提示:

  • 如果处理超大TXT文件,建议用逐行读写的方式(for line in f_src: f_target.write(line)),避免一次性读取大文件占用过多内存
  • 若要避免覆盖已存在的目标文件,可以在写入前添加if not os.path.exists(target_path)的判断

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 10:22:59