如何正确使用多异常条件?文件读取异常处理代码求助
文件读取异常处理代码修正
原代码存在的问题
- 未处理第二次读取的异常:
except块中直接调用pd.read_csv(file + ".csv"),如果该操作也失败,会直接抛出FileNotFoundError中断程序,无法将文件名加入错误列表。 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
相关产品推荐
相关产品推荐

