python成绩汇总
数据表
姓名 | 科目 |
---|---|
张三 | 语文-89-数学-85-历史-96 |
李四 | 数学-99-英语-89-语文-82-思政-97 |
王二麻子 | 语文-87-政治-91-数学-93 |
周杰 | 数学-99-美术-81 |
代码实现
import xlrd
from xlutils.copy import copy
wb=xlrd.open_workbook('成绩数据.xls')
# ws=wb.sheet_names()#打印工作表
# print(ws)
ws=wb.sheet_by_name('Sheet1')
nwb=copy(wb);nws=nwb.get_sheet('Sheet2')
col=ws.col_values(1)[1:]
subtotal,n=0,0
#方法一
# for v in col:
# # print("没有提取前数据:",v)
# # print("提取后数据:",v.split('-')[1::2])#拆分数据
# for score in v.split('-')[1::2]:
# # print(score)
# subtotal+=int(score)
# # print('---',subtotal)
# n+=1
# nws.write(n,0,ws.cell_value(n,0))
# nws.write(n,1,subtotal)
# subtotal=0
# nwb.save('成绩数据.xls')
# print("输出成功!")
#方法二
n=0
m=0
while n<ws.nrows-1:
n+=1
l=ws.cell_value(n,1).split('-')[1::2]
for v in l:
# print(v)
m+=int(v)
nws.write(n,0,ws.cell_value(n,0))#填充姓名数据
nws.write(n,1,m)
m=0
nwb.save('成绩数据.xls')
print("输出成功!")
最后实现效果截图