22-第2步_检查所有行,更新不正确的价格
第2步:检查所有行,更新不正确的价格
程序的下一部分将循环遍历电子表格中的所有行。将下面代码添加到updateProduce.py的末尾:
#! python3
# updateProduce.py - Corrects costs in produce sales spreadsheet.
--snip--
# Loop through the rows and update the prices.
❶ for rowNum in range(2, sheet.max_row): # skip the first row
❷ produceName = sheet.cell(row=rowNum, column=1).value
❸ if produceName in PRICE_UPDATES:
sheet.cell(row=rowNum, column=2).value = PRICE_UPDATES[produceName]
❹ wb.save('updatedProduceSales.xlsx')
我们从第2行开始循环遍历,因为第1行是表头❶。第1列的单元格(即列A)将保存在变量 produceName
中❷。如果 produceName
的值是 PRICEUPDATES
字典中的一个键❸,那你就知道,这行的价格必须修改。正确的价格是 PRICE UPDATES[produceName]
。
请注意,使用 PRICE_UPDATES
让代码变得很简洁。只需要一条 if
语句,而不是像 if produceName == 'Garlic'
这样的代码,就能够更新所有类型的产品。因为代码没有硬编码产品名称,而是使用 PRICE_UPDATES
字典,在 for
循环中更新价格,所以如果产品销售电子表格需要进一步修改,那你只需要修改 PRICE_UPDATES
字典即可,不用修改其他代码。
在遍历整个电子表格并进行修改后,代码将 Workbook
对象保存到 updatedProduceSales. xlsx
❹。它没有覆写原来的电子表格,以防程序有bug将电子表格改错。在确认修改的电子表格正确后,你可以删除原来的电子表格。
你可以从异步社区本书对应页面下载这个程序的完整源代码。