在进行作业收取时对大量作业的统计是一件很麻烦的事情
总有一些人存在不规范命名的情况
本文通过Python代码实现了对作业收取情况的自动化统计。
通过统计学号倒数第三位分类了班级
删了无用字符与中文不规范的格式
通过对字符串性质的判断,可以将命名不规范的文件名字筛选出来
import os
from openpyxl import Workbook
def is_supported_file(file_path):
# 获取文件扩展名
file_extension = os.path.splitext(file_path)[1].lower()
# 判断文件扩展名是否为.docx、.pdf或.doc
if file_extension == ".docx" or file_extension == ".pdf" or file_extension == ".doc":
return True
else:
return False
# 指定文件夹路径
folder_path = "储存文件的文件夹路径"
# 创建Excel工作簿
workbook = Workbook()
sheet = workbook.active
sheet.title = "测控一班"
sheet1 = workbook.create_sheet(title="测控二班")
sheet2 = workbook.create_sheet(title="测控三班")
sheet3 = workbook.create_sheet(title="提交总数")
sheet4 = workbook.create_sheet(title="未按学号+姓名命名")
num=[0,0,0,0]
# 遍历文件夹中的文件名称
for filename in os.listdir(folder_path):
# 可以根据需要添加筛选条件,如文件类型判断等
if os.path.isfile(os.path.join(folder_path, filename)):
# 将文件名称写入Excel表格
if is_supported_file(os.path.join(folder_path, filename)):
if filename[0:11].isdigit():#判断是否规范命名
name_valid = filename[8:11]
if name_valid[0] == "1":
sheet.append([name_valid])
num[0]+=1
elif name_valid[0] == "2":
sheet1.append([name_valid])
num[1]+=1
elif name_valid[0] == "3":
sheet2.append([name_valid])
num[2]+=1
else:
sheet4.append([filename])
num[3]+=1
#写入提交总数
sheet.append(["已交:",str(num[0])])
sheet1.append(["已交:",str(num[1])])
sheet2.append(["已交:",str(num[2])])
sheet3.append(["已交:",str(sum(num))])
sheet4.append(["已交:",str(num[3])])
# 保存Excel文件
workbook.save("路径+作业提交结果.xlsx")
统计结果