代码如下
path = os.getcwd() + '/file/package'
file_dir = os.path.join(os.getcwd(), path)
file_path = os.path.join(file_dir, file.filename)
file.save(file_path)
wb = xlrd.open_workbook(str(file_path))
sh = wb.sheet_by_name('simcard')
max_obj = []
max_obj.clear()
iccid = []
iccid.clear()
for i in range(1, sh.nrows):
iccid.append(sh.row_values(i)[0])
card_obj = Card.query.filter(
Card.iccid.in_(iccid)
).all()
head = [*sh.row_values(0), "id"]
for i in range(len(card_obj)):
for num in range(i, sh.nrows):
msg = [str(s) if not str(s).endswith(".0") else str(s).split('.')[0] for s in sh.row_values(num)]
if sh.row_values(num)[0] == card_obj[i].iccid:
max_obj.append(
dict(
zip(
head,
[
*
msg
,
card_obj[i].id
]
)
)
)
db.session.bulk_update_mappings(
Card,
[*max_obj]
)
db.session.commit()
if os.path.exists(file_path):
os.remove(file_path)
return "成功读取文件内的内容,并且更新成功本地文件已经删除"