Я создаю около 200 переменных в одной итерации цикла python (извлекаю поля из документов Excel и помещаю их в базу данных SQL) и пытаюсь что-то выяснить.
Скажем, одна итерация - это одна книга Excel, которую я зацикливаю в каталоге.Я извлекаю около 200 полей из каждой рабочей книги.
Если я извлекаю одно из этих полей (скажем, поле № 56 из 200), и оно имеет неправильный формат (допустим, дата была заполнена неправильнот. е. 31.09.2015, который не является реальной датой), и он ошибается в операции, которую я выполняю.
Я хочу, чтобы цикл пропустил эту переменную и приступил к созданию переменной # 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