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

如何正确使用多异常条件?文件读取异常处理代码求助

文件读取异常处理代码修正

原代码存在的问题

  1. 未处理第二次读取的异常:except块中直接调用pd.read_csv(file + ".csv"),如果该操作也失败,会直接抛出FileNotFoundError中断程序,无法将文件名加入错误列表。
  2. else块逻辑完全倒置:else会在try块无异常时执行,原代码是成功读取文件后将其加入errorfiles,和需求(读取失败才加入)相反。

修正后的代码

import pandas as pd

filelist = ["file1.csv", "file2.csv", "file3.csv"]
errorfiles = []

for file in filelist:
    try:
        # 尝试第一种读取方式:原文件名
        df = pd.read_csv(file)
    except FileNotFoundError:
        # 第一种方式失败,尝试第二种:添加.csv后缀
        try:
            df = pd.read_csv(f"{file}.csv")
        except FileNotFoundError:
            # 两种方式都失败,记录错误文件
            errorfiles.append(file)
    except Exception:
        # 捕获其他读取异常(如文件格式错误),同样记录
        errorfiles.append(file)

修正说明

  • 针对FileNotFoundError做针对性捕获,避免误捕获其他无关异常(比如文件格式错误、权限问题等)。
  • 通过嵌套try-except处理第二次读取操作,确保两种方式都失败时才将文件名加入errorfiles。
  • 额外添加对通用Exception的捕获,覆盖其他读取失败场景,保证所有读取异常的文件都能被记录。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 20:01:14