栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Python实验|Excel 文件成绩处理

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python实验|Excel 文件成绩处理

下面展示一些 代码。

from random import choice, randint 
from openpyxl import Workbook, load_workbook #生成随机数据 
def generateRandomInformation(filename): 
    workbook = Workbook() 
    worksheet = workbook.worksheets[0]
    worksheet.append(['姓名','课程','成绩'])
         #中文名字中的第一、第二、第三个字
    first = '赵钱孙李' 
    middle = '伟昀琛东' 
    last = '坤艳志' 
    subjects = ('语文','数学','英语') 
    for i in range(200):
        name = choice(first) 
              #按一定概率生成只有两个字的中文名字 
        if randint(1,100)>50: 
           name = name + choice(middle) 
        name = name + choice(last) 
              #依次生成姓名、课程名称和成绩
           worksheet.append([name, choice(subjects), randint(0, 100)]) 
              #保存数据,生成 Excel 2007 格式的文件
        workbook.save(filename) 
def getResult(oldfile, newfile):
               #用于存放结果数据的字典 
    result = dict() #打开原始数据 
    workbook = load_workbook(oldfile) 
    worksheet = workbook.worksheets[0] 
               #遍历原始数据 
    for row in worksheet.rows: 
        if row[0].value == '姓名': 
            continue 
             #姓名,课程名称,本次成绩 
        name, subject, grade = map(lambda cell:cell.value, row) 
             #获取当前姓名对应的课程名称和成绩信息 
              #如果 result 字典中不包含,则返回空字典
        t = result.get(name, {}) 
                   #获取当前学生当前课程的成绩,若不存在,返回 0 
        f = t.get(subject, 0) #只保留该学生该课程的最高成绩 
        if grade > f: 
           t[subject] = grade 
           result[name] = t 
 workbook1 = Workbook() 
 worksheet1 = workbook1.worksheets[0] 
 worksheet1.append(['姓名','课程','成绩']) 
            #将 result 字典中的结果数据写入 Excel 文件 
 for name, t in result.items(): 
     print(name, t) 
     for subject, grade in t.items(): 
         worksheet1.append([name, subject, grade])     
  workbook1.save(newfile) 
  if __name__ == '__main__': 
    oldfile = r'd:test.xlsx' 
    newfile = r'd:result.xlsx'
    generateRandomInformation(oldfile) 
    getResult(oldfile, newfile)
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1001436.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号