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

Python for循环处理Excel数据如何跳过错误继续运行?

代码调整方案

你当前代码的问题是try...except包裹了整个循环逻辑,只要某一行触发异常就会直接跳出整个循环,终止执行。只需要把异常捕获的范围缩小到循环内部单条数据的处理逻辑即可,具体调整如下:

调整后完整代码

import re
import pandas as pd

counti = 0
# 替换为你的原Excel文件路径
df = pd.read_excel("源文件路径.xlsx")
processed_content = []

def removepunc(firstlist):
    global counti
    for words in firstlist:
        try:
            # 提前判断空值/非字符串类型,规避空行报错
            if pd.isna(words) or not isinstance(words, (str, bytes)):
                cleanstr = ""
            else:
                cleanstr = re.sub(r'[^\w\s]', ' ', words)
            counti += 1
            print(counti,":", cleanstr)
            processed_content.append(cleanstr)
        except:
            # 触发异常时跳过当前行,继续执行下一轮循环
            processed_content.append("")
            continue
    # 所有内容处理完成后统一写入Excel,避免循环中反复写入覆盖内容、损耗性能
    df["清理后内容"] = processed_content
    df.to_excel("test.xlsx", index=False)
    return counti

# 替换为你需要处理的Excel列名
removepunc(df["待处理列名"].tolist())

核心调整点

  • 将try...except从包裹整个循环改为放在循环内部,仅覆盖单条数据的处理逻辑,异常触发后只会跳过当前行,不会终止整体运行
  • 新增空值、非字符串类型的前置判断,提前规避空行报错,也可按需自定义空行的填充内容
  • 把Excel写入逻辑从循环内移到全部数据处理完成后,解决原代码循环写入会反复覆盖文件内容的问题,同时提升运行效率

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 17:36:08