修改该代码import openpyxl from openpyxl import Workbook fn = r'D:\Python Homework\实践2素材.xlsx' wb = openpyxl.load_workbook(fn) ws = wb.active actor_dict = dict() for i, b in enumerate(ws): if i == 0: continue filmName, actor = b[0].value, b[2].value.split('\n') for a in actor: actor_dict[a] = actor_dict.get(a,set()) actor_dict[a].add(filmName) actor_lict = sorted(actor_dict.items(), key=lambda x: str(x[0][2:])) actor_dict = dict(actor_dict) print("演员所参演的电影字典:{}".format(actor_dict))
时间: 2024-03-25 14:37:11 浏览: 167
代码中有一个小错误,actor_lict 应该是 actor_dict,下面是修改后的代码:
```python
import openpyxl
from openpyxl import Workbook
fn = r'D:\Python Homework\实践2素材.xlsx'
wb = openpyxl.load_workbook(fn)
ws = wb.active
actor_dict = dict()
for i, b in enumerate(ws):
if i == 0:
continue
filmName, actor = b[0].value, b[2].value.split('\n')
for a in actor:
actor_dict[a] = actor_dict.get(a,set())
actor_dict[a].add(filmName)
actor_dict = dict(sorted(actor_dict.items(), key=lambda x: str(x[0][2:])))
print("演员所参演的电影字典:{}".format(actor_dict))
```
这段代码的功能是读取一个 Excel 文件,将演员和电影之间的关系存储在一个字典中,最后按照演员名字的首字母排序输出。
相关问题
优化代码:import openpyxl # 打开申请表工作簿和汇总表工作簿 wb_app = openpyxl.load_workbook('申请名单.xlsx') wb_sum = openpyxl.load_workbook('汇总表.xlsx') # 获取申请表Sheet1和汇总表Sheet1 ws_app = wb_app['Sheet1'] ws_sum = wb_sum['Sheet1'] # 复制申请表数据到汇总表底部 for row in ws_app.iter_rows(min_row=2, values_only=True): ws_sum.append(row) # 保存汇总表工作簿 try: wb_sum.save('汇总表.xlsx') except Exception as e: print('保存汇总表失败,错误信息:', e) finally: # 关闭两个工作簿 wb_app.close() wb_sum.close()
优化的代码如下:
```python
import openpyxl
# 打开申请表工作簿和汇总表工作簿
with openpyxl.load_workbook('申请名单.xlsx') as wb_app, openpyxl.load_workbook('汇总表.xlsx') as wb_sum:
# 获取申请表Sheet1和汇总表Sheet1
ws_app = wb_app['Sheet1']
ws_sum = wb_sum['Sheet1']
# 复制申请表数据到汇总表底部
for row in ws_app.iter_rows(min_row=2, values_only=True):
ws_sum.append(row)
# 保存汇总表工作簿
try:
wb_sum.save('汇总表.xlsx')
except Exception as e:
print('保存汇总表失败,错误信息:', e)
```
使用 `with` 语句可以自动关闭文件,避免手动关闭忘记关闭的问题。此外,将两个工作簿的打开和关闭操作放在同一个 `with` 语句中,可以更好地保证两个工作簿的一致性。同时,将异常处理放在 `try` 块中,保证程序出错时能够及时处理异常,避免程序崩溃。
import unittest from time import sleep from ddt import ddt, data, unpack from selenium import webdriver import openpyxl from selenium.webdriver.common.by import By def read_excel(): xlsx = openpyxl.load_workbook("D:\python\project\case\xl.xlsx") #打开路径内的xl
.xlsx文件 sheet = xlsx.active #获取活动的工作表 data = [] for row in sheet.rows: data.append([cell.value for cell in row]) #遍历每一行,将每一行的值存入data列表 return data
这段代码的作用是读取指定路径下的 .xlsx 文件,并将其中的数据存储在一个列表中。其中使用了 openpyxl 库来操作 Excel 文件,使用了列表推导式来遍历每一行并存储数据。
阅读全文