实验目的:
1、了解扩展库 openpyxl 的安装与使用。
2、熟练运用字典结构解决实际问题。
实验内容:
假设某学校所有课程每学期允许多次考试,学生可随时参加考试,系统自动将每次成绩
添加到 Excel 文件(包含 3 列:姓名,课程,成绩)中,现期末要求统计所有学生每门课
程的最高成绩。
编写程序,模拟生成若干同学的成绩并写入 Excel 文件,其中学生姓名和课程名称均可重复,也就是允许出现同一门课程的多次成绩,最后统计所有学生每门课程的最高成绩,并写入新的 Excel 文件。
实验步骤:
1、在命令提示符环境使用 pip install openpyxl 命令安装扩展库 openpyxl。
2、编写代码。
下面展示一些 代码。

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, {})# 获取当前学生当前课程的成绩,若不存在,返回 0f = t.get(subject, 0)# 只保留该学生该课程的最高成绩if grade > f:t[subject] = graderesult[name] = tworkbook1 = 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)

Python实验|Excel 文件成绩处理相关推荐

  1. excel文件成绩处理python代码_Python处理Excel文件实例代码

    因为工作需求,需要审核一部分query内容是否有效,query储存在Excel中,文本内容为页面的Title,而页面的URL以HyperLink的格式关联到每个Cell. 于是本能的想到用Python ...

  2. python更新excel内容_[原创]使用 Python 读写 Excel 文件(一)更新

    项目要求 如果说是 Office 办公软件使得 Windows 成为主流的操作系统,那么 Excel 就是使得微软硬起来的法宝! Word 和 PowerPoint 都有不相上下的对手,但 Excel ...

  3. python暴力破解excel_使用 Python 读写 Excel 文件(一)

    项目要求 如果说是 Office 办公软件使得 Windows 成为主流的操作系统,那么 Excel 就是使得微软硬起来的法宝! Word 和 PowerPoint 都有不相上下的对手,但 Excel ...

  4. Python操作Excel文件:插入一列数据

    问题描述:已有Excel文件,其中包含5列数据,要求在第3列前插入一列数据,保存为新文件. 参考代码: 运行结果: --------董付国老师Python系列教材-------- 1)<Pyth ...

  5. Python 操作Excel文件

    Python 操作Excel文件 文章目录 Python 操作Excel文件 1. 用到的三方库 2. 读excel文件 3. 写excel 文件 简单的总结 Excel 是我们在日常办公中可谓是无处 ...

  6. python打开excel文件画散点图_Python 写excel文件并插入散点图

    这两天做小实验,需要分析结果,当然需要些图表.实验的算例少说也有几十个,一个个导入excel,太烦了.幸好,本人是个程序员. google了下,python写excel文件的方法不少,最后我选定了xl ...

  7. python 读取excel文件 效率 时间 格式_python读取Excel文件中的时间数据

    在使用python读取Excel文件中的时间格式,碰到的时间格式转换问题: 读取这样的表格: 输出这样的数据结果: 然而这样的结果却不是我们想要的,我们需要的是这样的结果: 1.安装python官方库 ...

  8. python处理excel文件的模块_python处理Excel文件的几个模块

    在python中简单地处理excel文件,有几个相关的模块,各有千秋,本文将不定时收录. Python Excel网站收集了关于python处理excel文件的各种信息. [注意]使用python处理 ...

  9. 怎么用python处理excel文件-用python处理excel文件有多轻松?工作从未如此简单

    最近需要频繁读写 excel 文件,想通过程序对 excel 文件进行自动化处理,发现使用 python 的 openpyxl 库进行 excel 文件读写实在太方便了,结构清晰,操作简单.本文对 o ...

最新文章

  1. 第一个python去掉行号
  2. 第二章matlab数据及其运算,第2章 MATLAB数据及其运算_习题答案
  3. LaText中插入带上下限的求和符号
  4. JAVA基础知识之字节和字符
  5. 动态规划训练25 [Food Delivery ZOJ - 3469 ]好题
  6. PHP webshell
  7. 矩阵的四个基本子空间
  8. Crypto.com宣布将在2021年1月19日下架XRP
  9. ajax+springmvc返回中文乱码的解决办法
  10. jQ+jQ UI制作的一个简单的二级可多选穿梭框
  11. 互联网社交出海:赤子城年内涨幅280%,“深水区”故事如何说好?
  12. python中的numpy标准正态分布_Numpy创建正态分布和均匀分布
  13. azkaban跑项目的时候,一直running,
  14. 数值分析复习(一)线性插值、抛物线插值
  15. 美国计算机生物学大学,美国计算机大学排名
  16. 网络协议 -- ARP和RARP协议
  17. 使用 QTLtools 进行 PCA 分析
  18. 苹果 macOS Big Sur 11.5 RC 2(20G71)候选版本发布
  19. 【论文笔记】TransFG: A Transformer Architecture for Fine-Grained Recognition
  20. 怎么测试自己适合哪种发型的软件,什么软件可以测试自己适合的发型想要持久定型除了烫发还有别的方法吗...

热门文章

  1. 堡垒机查看linux版本,Linux堡垒机实现原理(示例代码)
  2. 航空公司客户价值分析python实战
  3. 比Bootstrap还好用的CSS 框架 Bulma --教程
  4. 公开揭密团队成员开发鸿蒙 OpenHarmony 的完整过程(收获官方7k奖金和开发板等,2w字用心总结)
  5. 谷粒学院——Day14【首页课程和名师功能】
  6. 人脸识别技术原理你知道吗?
  7. Java毕设项目离散制造业产品销售管理系统(java+VUE+Mybatis+Maven+Mysql)
  8. Browserslist: caniuse-lite is outdated. Please run: npx ....
  9. 基于springboot高校闲置物品交易系统微信小程序源码和论文
  10. 解决Can not connect to local MySQL server through socket tmpmysql.sock (2)