目录
将成绩排名信息写入csv格式的文件中,文件名称为:test_你自己的名字_时间戳.csv
生成一个图片,将前三名信息水印在这张图片上,将图片保存在 当前目录
import pandas as pd # 读取 Excel 表格 df = pd.read_excel("第一轮面试成绩.xlsx") lst=[] # 空列表,存放姓名分数 ty=[] # 空列表 存放分数 # # 输出所有同学“名称:对应成绩”的信息 for index, row in df.iterrows(): lst.append({'姓名': row[0],'分数':row[1]}) # print(f"{row[0]}: {row[1]}") lst.pop(0) #删除数据返回第一个 lst.pop(-1) # 删除数据返回最后一个 # 循环获取所有的分数 for i in lst: ty.append(i['分数']) #获取最大的分数 for i in lst: if i['分数'] == max(ty): print(i) #获取最小的分数 for i in lst: if i['分数'] == min(ty): print(i) # print(sum(ty)/len(ty)) # 获取平均分 sum总分数 除 len总人数 a = sum(ty)/len(ty) print('平均分>>>>>',a) # 获取小于平均分的人 for i in lst: if a >= i['分数']: print('小于平均分:',i) # 获取大于平均分的人 for i in lst: if a <= i['分数']: print('大于平均分:',i) # 导入 csv 包 导入 time 包 import csv import time # 成绩排名信息 # 表格里面的所有人成绩 scores = [{
'姓名': '小红', '分数': 87
'姓名': '小兰', '分数': 100
'姓名': '小绿', '分数': 67
'姓名': '小白', '分数': 80
}] # 获取当前时间戳 timestamp = int(time.time()) # 构造文件名 file_name = f"test_你的名字_{timestamp}.csv" # 写入CSV文件 with open(file_name, "w", newline="",encoding='UTF-8') as file: writer = csv.DictWriter(file, fieldnames=["姓名", "分数"]) writer.writeheader() # 写入标题行 writer.writerows(scores) # 写入数据记录 # 导入这些包 from PIL import Image, ImageDraw, ImageFont # 前三名信息 # 这里用了排序方式跟下标找到了成绩为前三名 sorted_scores = sorted(scores, key=lambda x: x['分数'], reverse=True) top_three = sorted_scores[:3] # 打印出来 print(top_three) # # 打开图片 image = Image.open("你的图片") # 创建绘图对象 draw = ImageDraw.Draw(image) # 设置字体和字体大小 # C:/Windows/Fonts/simhei.ttf 是windows下的宋黑体 font = ImageFont.truetype("C:/Windows/Fonts/simhei.ttf", 30) # 添加水印 for i, info in enumerate(top_three): # 图片水印的样子 如: 第 1 名 - 小红 -90 text = f"第{i+1}名: {info['姓名']} - {info['分数']}分" # 图片编码问题,通过下面代码解决 utf8_text = text.encode('utf-8').decode('utf-8') # 字体的一些基本东西 draw.text((10, 10 + i*30),utf8_text, font=font, fill=(5, 5,5))
# 保存图片 image.save("保存的图片名字")