python 跳过迭代_在Python中如何跳过单循环迭代的一部分

在Python中处理Excel文件时,遇到错误如日期格式不正确,可以使用异常处理来避免整个循环中断。当在Excel的某个单元格中发现错误时,可以捕获异常并继续处理同一迭代中的其他单元格。示例代码展示了如何从Excel读取数据,如果在`ExpirationDate`上遇到错误,则跳过并继续提取`PolicyState`等后续字段。
摘要由CSDN通过智能技术生成

我在python循环的一次迭代中创建了大约200个变量(从excel文档中提取字段并将它们推送到SQL数据库中),我正试图找出一些问题。

假设一个迭代是一个Excel工作簿,我在一个目录中循环。我从每个工作簿中提取大约200个字段。

如果我提取其中一个字段(假设字段Š56/200)格式不正确(假设日期填写错误,即2015年9月31日,这不是一个真正的日期),它与我正在执行的操作出错。

我希望循环跳过该变量并继续创建变量#57。我不希望循环完全转到下一个迭代或工作簿,我只希望它忽略该变量上的错误,并继续使用该单个循环迭代的其余变量。

我该怎么做这样的事呢?

在这个示例代码中,我希望继续提取“PolicyState”,即使ExpirationDate有错误。

一些示例代码:import datetime as dt

import os as os

import xlrd as rd

files = os.listdir(path)

for file in files: #Loop through all files in path directory

filename = os.fsdecode(file)

if filename.startswith('~'):

continue

elif filename.endswith( ('.xlsx', '.xlsm') ):

try:

book = rd.open_workbook(os.path.join(path,file))

except KeyError:

print ("Error opening file for "+ file)

continue

SoldModelInfo=book.sheet_by_name("SoldModelInfo")

AccountName=str(SoldModelInfo.cell(1,5).value)

ExpirationDate=dt.datetime.strftime(xldate_to_datetime(SoldModelInfo.cell(1,7).value),'%Y-%m-%d')

PolicyState=str(SoldModelInfo.cell(1,6).value)

print("Insert data of " + file +" was successful")

else:

continue

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值