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

Python实现多文件合并时,如何处理部分文件缺失的情况?

问题根源

你原有代码的问题在于,把三个待读取文件的打开操作全部放在同一个with语句中,只要任意一个文件缺失触发FileNotFoundError,整个读写逻辑会直接跳到except分支执行pass,最终连存在的文件内容也不会写入。

修正代码
source_files = ["File_1.txt", "File_2.txt", "File_3.txt"]

with open("Final.txt", "a+", encoding="utf-8") as final_file:
    for per_file in source_files:
        try:
            with open(per_file, "r", encoding="utf-8") as f:
                final_file.write(f.read())
        except FileNotFoundError:
            # 单个文件缺失时直接跳过,不影响其余文件写入
            continue
    final_file.write("\n")
逻辑说明
  • 把所有待合并的源文件路径统一存在列表里,后续要增减合并的文件,直接修改列表即可,不用动核心读写代码
  • 逐个遍历处理每个源文件,单个文件的读取操作单独做异常捕获,仅跳过缺失的文件,其余存在的文件内容会正常写入最终文件
  • 只捕获需要处理的FileNotFoundError异常,没有用宽泛的Exception捕获,避免权限不足、文件损坏等其他异常被静默忽略,方便排查问题
  • 显式指定文件编码为utf-8,避免不同系统默认编码差异导致的乱码问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 07:36:33