This repository has been archived on 2024-06-23. You can view files and clone it, but cannot push or open issues or pull requests.
mathdeptv2/工具/分年级专用工具/小闲平台数据整体导入.ipynb

1223 lines
43 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{
"cells": [
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"zip文件在文件夹中: 高二下数学周末卷2_高二_数学\n",
"zip文件在文件夹中: 高二下数学周末卷3_高二_数学\n",
"zip文件在文件夹中: 5.1.1导数的概念_高二_数学\n",
"zip文件在文件夹中: 5.1.2导数的几何意义_高二_数学\n",
"zip文件在文件夹中: 高二下数学周末卷4_高二_数学\n",
"zip文件在文件夹中: 5.2.1基本初等函数的导数_高二_数学\n",
"zip文件在文件夹中: 5.2.2导数的四则运算_高二_数学\n",
"zip文件在文件夹中: 531利用导数研究函数的单调性_高二_数学\n",
"zip文件在文件夹中: 5321利用导数研究函数的极值_高二_数学\n",
"zip文件在文件夹中: 523简单复合函数的导数_高二_数学\n",
"zip文件在文件夹中: 高二下数学周末卷5_高二_数学\n",
"zip文件在文件夹中: 5322利用导数研究函数的最值_高二_数学\n",
"zip文件在文件夹中: 533利用导数解决实际问题_高二_数学\n",
"zip文件在文件夹中: 高二下数学周末卷6_高二_数学\n",
"zip文件在文件夹中: 6.51二项式定理1_高二_数学\n",
"zip文件在文件夹中: 6.52二项式定理2_高二_数学\n",
"zip文件在文件夹中: 高二下数学周末卷7_高二_数学\n",
"zip文件在文件夹中: 3.1空间向量及其运算_高二_数学\n",
"zip文件在文件夹中: 3.3空间向量的坐标表示_高二_数学\n",
"zip文件在文件夹中: 3.2空间向量基本定理_高二_数学\n",
"zip文件在文件夹中: 高二下数学周末卷8_高二_数学\n",
"zip文件在文件夹中: 3.41空间向量在立体几何中的应用1_高二_数学\n",
"zip文件在文件夹中: 3.42空间向量在立体几何中的应用2_高二_数学\n",
"zip文件在文件夹中: 3.43空间向量在立体几何中的应用3_高二_数学\n",
"zip文件在文件夹中: 7.11条件概率_高二_数学\n",
"zip文件在文件夹中: 7.12全概率公式_高二_数学\n",
"zip文件在文件夹中: 7.21随机变量与分布_高二_数学\n",
"zip文件在文件夹中: 高二下数学周末卷10_高二_数学\n",
"zip文件在文件夹中: 7.22期望_高二_数学\n",
"zip文件在文件夹中: 7.23方差_高二_数学\n",
"正在处理高二下数学周末卷2_高二_数学\n",
"2024届高二10班\n",
"2024届高二10班 有效\n",
"2024届高二01班\n",
"2024届高二01班 有效\n",
"2024届高二02班\n",
"2024届高二02班 有效\n",
"2024届高二05班\n",
"2024届高二05班 有效\n",
"2024届高二06班\n",
"2024届高二06班 有效\n",
"2024届高二07班\n",
"2024届高二07班 有效\n",
"2024届高二09班\n",
"2024届高二09班 有效\n",
"正在处理高二下数学周末卷3_高二_数学\n",
"2024届高二10班\n",
"2024届高二10班 有效\n",
"2024届高二11班\n",
"2024届高二11班 有效\n",
"2024届高二12班\n",
"2024届高二12班 有效\n",
"2024届高二01班\n",
"2024届高二01班 有效\n",
"2024届高二02班\n",
"2024届高二02班 有效\n",
"2024届高二03班\n",
"2024届高二03班 有效\n",
"2024届高二05班\n",
"2024届高二05班 有效\n",
"2024届高二06班\n",
"2024届高二06班 有效\n",
"2024届高二07班\n",
"2024届高二07班 有效\n",
"2024届高二08班\n",
"2024届高二08班 有效\n",
"2024届高二09班\n",
"2024届高二09班 有效\n",
"正在处理5.1.1导数的概念_高二_数学\n",
"2024届高二11班\n",
"2024届高二11班 有效\n",
"2024届高二12班\n",
"2024届高二12班 有效\n",
"2024届高二03班\n",
"2024届高二03班 有效\n",
"2024届高二05班\n",
"2024届高二05班 有效\n",
"2024届高二08班\n",
"2024届高二08班 有效\n",
"2024届高二09班\n",
"2024届高二09班 有效\n",
"正在处理5.1.2导数的几何意义_高二_数学\n",
"2024届高二10班\n",
"2024届高二10班 有效\n",
"2024届高二11班\n",
"2024届高二11班 有效\n",
"2024届高二12班\n",
"2024届高二12班 有效\n",
"2024届高二01班\n",
"2024届高二01班 有效\n",
"2024届高二02班\n",
"2024届高二02班 有效\n",
"2024届高二03班\n",
"2024届高二03班 有效\n",
"2024届高二04班\n",
"2024届高二04班 有效\n",
"2024届高二05班\n",
"2024届高二05班 有效\n",
"2024届高二06班\n",
"2024届高二06班 有效\n",
"2024届高二07班\n",
"2024届高二07班 有效\n",
"2024届高二08班\n",
"2024届高二08班 有效\n",
"2024届高二09班\n",
"2024届高二09班 有效\n",
"正在处理高二下数学周末卷4_高二_数学\n",
"2024届高二10班\n",
"2024届高二10班 有效\n",
"2024届高二11班\n",
"2024届高二11班 有效\n",
"2024届高二12班\n",
"2024届高二12班 有效\n",
"2024届高二01班\n",
"2024届高二01班 有效\n",
"2024届高二02班\n",
"2024届高二02班 有效\n",
"2024届高二03班\n",
"2024届高二03班 有效\n",
"2024届高二05班\n",
"2024届高二05班 有效\n",
"2024届高二06班\n",
"2024届高二06班 有效\n",
"2024届高二07班\n",
"2024届高二07班 有效\n",
"2024届高二08班\n",
"2024届高二08班 有效\n",
"2024届高二09班\n",
"2024届高二09班 有效\n",
"正在处理5.2.1基本初等函数的导数_高二_数学\n",
"2024届高二10班\n",
"2024届高二10班 有效\n",
"2024届高二11班\n",
"2024届高二11班 有效\n",
"2024届高二12班\n",
"2024届高二12班 有效\n",
"2024届高二01班\n",
"2024届高二01班 有效\n",
"2024届高二02班\n",
"2024届高二02班 有效\n",
"2024届高二03班\n",
"2024届高二03班 有效\n",
"2024届高二05班\n",
"2024届高二05班 有效\n",
"2024届高二06班\n",
"2024届高二06班 有效\n",
"2024届高二07班\n",
"2024届高二07班 有效\n",
"2024届高二08班\n",
"2024届高二08班 有效\n",
"2024届高二09班\n",
"2024届高二09班 有效\n",
"正在处理5.2.2导数的四则运算_高二_数学\n",
"2024届高二10班\n",
"2024届高二10班 有效\n",
"2024届高二11班\n",
"2024届高二11班 有效\n",
"2024届高二12班\n",
"2024届高二12班 有效\n",
"2024届高二01班\n",
"2024届高二01班 有效\n",
"2024届高二02班\n",
"2024届高二02班 有效\n",
"2024届高二03班\n",
"2024届高二03班 有效\n",
"2024届高二05班\n",
"2024届高二05班 有效\n",
"2024届高二06班\n",
"2024届高二06班 有效\n",
"2024届高二07班\n",
"2024届高二07班 有效\n",
"2024届高二08班\n",
"2024届高二08班 有效\n",
"2024届高二09班\n",
"2024届高二09班 有效\n",
"正在处理531利用导数研究函数的单调性_高二_数学\n",
"2024届高二10班\n",
"2024届高二10班 有效\n",
"2024届高二01班\n",
"2024届高二01班 有效\n",
"2024届高二02班\n",
"2024届高二02班 有效\n",
"2024届高二06班\n",
"2024届高二06班 有效\n",
"2024届高二07班\n",
"2024届高二07班 有效\n",
"正在处理5321利用导数研究函数的极值_高二_数学\n",
"2024届高二10班\n",
"2024届高二10班 有效\n",
"2024届高二01班\n",
"2024届高二01班 有效\n",
"2024届高二02班\n",
"2024届高二02班 有效\n",
"2024届高二06班\n",
"2024届高二06班 有效\n",
"2024届高二07班\n",
"2024届高二07班 有效\n",
"正在处理523简单复合函数的导数_高二_数学\n",
"2024届高二11班\n",
"2024届高二11班 有效\n",
"2024届高二01班\n",
"2024届高二01班 有效\n",
"2024届高二02班\n",
"2024届高二02班 有效\n",
"2024届高二03班\n",
"2024届高二03班 有效\n",
"2024届高二05班\n",
"2024届高二05班 有效\n",
"2024届高二07班\n",
"2024届高二07班 有效\n",
"2024届高二09班\n",
"2024届高二09班 有效\n",
"正在处理高二下数学周末卷5_高二_数学\n",
"2024届高二10班\n",
"2024届高二10班 有效\n",
"2024届高二01班\n",
"2024届高二01班 有效\n",
"2024届高二02班\n",
"2024届高二02班 有效\n",
"2024届高二06班\n",
"2024届高二06班 有效\n",
"2024届高二07班\n",
"2024届高二07班 有效\n",
"正在处理5322利用导数研究函数的最值_高二_数学\n",
"2024届高二10班\n",
"2024届高二10班 有效\n",
"2024届高二01班\n",
"2024届高二01班 有效\n",
"2024届高二02班\n",
"2024届高二02班 有效\n",
"2024届高二06班\n",
"2024届高二06班 有效\n",
"2024届高二07班\n",
"2024届高二07班 有效\n",
"正在处理533利用导数解决实际问题_高二_数学\n",
"2024届高二10班\n",
"2024届高二10班 有效\n",
"2024届高二01班\n",
"2024届高二01班 有效\n",
"2024届高二02班\n",
"2024届高二02班 有效\n",
"2024届高二05班\n",
"2024届高二05班 有效\n",
"2024届高二06班\n",
"2024届高二06班 有效\n",
"2024届高二07班\n",
"2024届高二07班 有效\n",
"2024届高二09班\n",
"2024届高二09班 有效\n",
"正在处理高二下数学周末卷6_高二_数学\n",
"2024届高二10班\n",
"2024届高二10班 有效\n",
"2024届高二12班\n",
"2024届高二12班 有效\n",
"2024届高二01班\n",
"2024届高二01班 有效\n",
"2024届高二02班\n",
"2024届高二02班 有效\n",
"2024届高二05班\n",
"2024届高二05班 有效\n",
"2024届高二06班\n",
"2024届高二06班 有效\n",
"2024届高二07班\n",
"2024届高二07班 有效\n",
"2024届高二08班\n",
"2024届高二08班 有效\n",
"2024届高二09班\n",
"2024届高二09班 有效\n",
"正在处理6.51二项式定理1_高二_数学\n",
"2024届高二10班\n",
"2024届高二10班 有效\n",
"2024届高二12班\n",
"2024届高二12班 有效\n",
"2024届高二01班\n",
"2024届高二01班 有效\n",
"2024届高二02班\n",
"2024届高二02班 有效\n",
"2024届高二05班\n",
"2024届高二05班 有效\n",
"2024届高二06班\n",
"2024届高二06班 有效\n",
"2024届高二07班\n",
"2024届高二07班 有效\n",
"2024届高二08班\n",
"2024届高二08班 有效\n",
"2024届高二09班\n",
"2024届高二09班 有效\n",
"正在处理6.52二项式定理2_高二_数学\n",
"2024届高二10班\n",
"2024届高二10班 有效\n",
"2024届高二01班\n",
"2024届高二01班 有效\n",
"2024届高二02班\n",
"2024届高二02班 有效\n",
"2024届高二05班\n",
"2024届高二05班 有效\n",
"2024届高二06班\n",
"2024届高二06班 有效\n",
"2024届高二07班\n",
"2024届高二07班 有效\n",
"2024届高二09班\n",
"2024届高二09班 有效\n",
"正在处理高二下数学周末卷7_高二_数学\n",
"2024届高二10班\n",
"2024届高二10班 有效\n",
"2024届高二12班\n",
"2024届高二12班 有效\n",
"2024届高二01班\n",
"2024届高二01班 有效\n",
"2024届高二02班\n",
"2024届高二02班 有效\n",
"2024届高二05班\n",
"2024届高二05班 有效\n",
"2024届高二06班\n",
"2024届高二06班 有效\n",
"2024届高二07班\n",
"2024届高二07班 有效\n",
"2024届高二08班\n",
"2024届高二08班 有效\n",
"2024届高二09班\n",
"2024届高二09班 有效\n",
"正在处理3.1空间向量及其运算_高二_数学\n",
"2024届高二10班\n",
"2024届高二10班 有效\n",
"2024届高二12班\n",
"2024届高二12班 有效\n",
"2024届高二01班\n",
"2024届高二01班 有效\n",
"2024届高二02班\n",
"2024届高二02班 有效\n",
"2024届高二06班\n",
"2024届高二06班 有效\n",
"2024届高二07班\n",
"2024届高二07班 有效\n",
"2024届高二08班\n",
"2024届高二08班 有效\n",
"正在处理3.3空间向量的坐标表示_高二_数学\n",
"2024届高二10班\n",
"2024届高二10班 有效\n",
"2024届高二11班\n",
"2024届高二11班 有效\n",
"2024届高二01班\n",
"2024届高二01班 有效\n",
"2024届高二02班\n",
"2024届高二02班 有效\n",
"2024届高二03班\n",
"2024届高二03班 有效\n",
"2024届高二06班\n",
"2024届高二06班 有效\n",
"2024届高二07班\n",
"2024届高二07班 有效\n",
"正在处理3.2空间向量基本定理_高二_数学\n",
"2024届高二10班\n",
"2024届高二10班 有效\n",
"2024届高二11班\n",
"2024届高二11班 有效\n",
"2024届高二01班\n",
"2024届高二01班 有效\n",
"2024届高二02班\n",
"2024届高二02班 有效\n",
"2024届高二03班\n",
"2024届高二03班 有效\n",
"2024届高二05班\n",
"2024届高二05班 有效\n",
"2024届高二06班\n",
"2024届高二06班 有效\n",
"2024届高二07班\n",
"2024届高二07班 有效\n",
"2024届高二09班\n",
"2024届高二09班 有效\n",
"正在处理高二下数学周末卷8_高二_数学\n",
"2024届高二10班\n",
"2024届高二10班 有效\n",
"2024届高二11班\n",
"2024届高二11班 有效\n",
"2024届高二12班\n",
"2024届高二12班 有效\n",
"2024届高二01班\n",
"2024届高二01班 有效\n",
"2024届高二02班\n",
"2024届高二02班 有效\n",
"2024届高二03班\n",
"2024届高二03班 有效\n",
"2024届高二05班\n",
"2024届高二05班 有效\n",
"2024届高二06班\n",
"2024届高二06班 有效\n",
"2024届高二07班\n",
"2024届高二07班 有效\n",
"2024届高二08班\n",
"2024届高二08班 有效\n",
"2024届高二09班\n",
"2024届高二09班 有效\n",
"正在处理3.41空间向量在立体几何中的应用1_高二_数学\n",
"2024届高二10班\n",
"2024届高二10班 有效\n",
"2024届高二11班\n",
"2024届高二11班 有效\n",
"2024届高二01班\n",
"2024届高二01班 有效\n",
"2024届高二02班\n",
"2024届高二02班 有效\n",
"2024届高二03班\n",
"2024届高二03班 有效\n",
"2024届高二06班\n",
"2024届高二06班 有效\n",
"2024届高二07班\n",
"2024届高二07班 有效\n",
"正在处理3.42空间向量在立体几何中的应用2_高二_数学\n",
"2024届高二10班\n",
"2024届高二10班 有效\n",
"2024届高二01班\n",
"2024届高二01班 有效\n",
"2024届高二02班\n",
"2024届高二02班 有效\n",
"2024届高二06班\n",
"2024届高二06班 有效\n",
"2024届高二07班\n",
"2024届高二07班 有效\n",
"正在处理3.43空间向量在立体几何中的应用3_高二_数学\n",
"2024届高二10班\n",
"2024届高二10班 有效\n",
"2024届高二11班\n",
"2024届高二11班 有效\n",
"2024届高二12班\n",
"2024届高二12班 有效\n",
"2024届高二01班\n",
"2024届高二01班 有效\n",
"2024届高二02班\n",
"2024届高二02班 有效\n",
"2024届高二03班\n",
"2024届高二03班 有效\n",
"2024届高二05班\n",
"2024届高二05班 有效\n",
"2024届高二06班\n",
"2024届高二06班 有效\n",
"2024届高二07班\n",
"2024届高二07班 有效\n",
"2024届高二08班\n",
"2024届高二08班 有效\n",
"2024届高二09班\n",
"2024届高二09班 有效\n",
"正在处理7.11条件概率_高二_数学\n",
"2024届高二10班\n",
"2024届高二10班 有效\n",
"2024届高二11班\n",
"2024届高二11班 有效\n",
"2024届高二01班\n",
"2024届高二01班 有效\n",
"2024届高二02班\n",
"2024届高二02班 有效\n",
"2024届高二03班\n",
"2024届高二03班 有效\n",
"2024届高二05班\n",
"2024届高二05班 有效\n",
"2024届高二06班\n",
"2024届高二06班 有效\n",
"2024届高二07班\n",
"2024届高二07班 有效\n",
"2024届高二09班\n",
"2024届高二09班 有效\n",
"正在处理7.12全概率公式_高二_数学\n",
"2024届高二10班\n",
"2024届高二10班 有效\n",
"2024届高二01班\n",
"2024届高二01班 有效\n",
"2024届高二02班\n",
"2024届高二02班 有效\n",
"2024届高二06班\n",
"2024届高二06班 有效\n",
"2024届高二07班\n",
"2024届高二07班 有效\n",
"正在处理7.21随机变量与分布_高二_数学\n",
"2024届高二10班\n",
"2024届高二10班 有效\n",
"2024届高二11班\n",
"2024届高二11班 有效\n",
"2024届高二12班\n",
"2024届高二12班 有效\n",
"2024届高二01班\n",
"2024届高二01班 有效\n",
"2024届高二02班\n",
"2024届高二02班 有效\n",
"2024届高二03班\n",
"2024届高二03班 有效\n",
"2024届高二05班\n",
"2024届高二05班 有效\n",
"2024届高二06班\n",
"2024届高二06班 有效\n",
"2024届高二07班\n",
"2024届高二07班 有效\n",
"2024届高二08班\n",
"2024届高二08班 有效\n",
"2024届高二09班\n",
"2024届高二09班 有效\n",
"正在处理高二下数学周末卷10_高二_数学\n",
"2024届高二10班\n",
"2024届高二10班 有效\n",
"2024届高二11班\n",
"2024届高二11班 有效\n",
"2024届高二12班\n",
"2024届高二12班 有效\n",
"2024届高二01班\n",
"2024届高二01班 有效\n",
"2024届高二02班\n",
"2024届高二02班 有效\n",
"2024届高二03班\n",
"2024届高二03班 有效\n",
"2024届高二05班\n",
"2024届高二05班 有效\n",
"2024届高二06班\n",
"2024届高二06班 有效\n",
"2024届高二07班\n",
"2024届高二07班 有效\n",
"2024届高二08班\n",
"2024届高二08班 有效\n",
"2024届高二09班\n",
"2024届高二09班 有效\n",
"正在处理7.22期望_高二_数学\n",
"2024届高二10班\n",
"2024届高二10班 有效\n",
"2024届高二11班\n",
"2024届高二11班 有效\n",
"2024届高二01班\n",
"2024届高二01班 有效\n",
"2024届高二02班\n",
"2024届高二02班 有效\n",
"2024届高二03班\n",
"2024届高二03班 有效\n",
"2024届高二05班\n",
"2024届高二05班 有效\n",
"2024届高二06班\n",
"2024届高二06班 有效\n",
"2024届高二07班\n",
"2024届高二07班 有效\n",
"2024届高二09班\n",
"2024届高二09班 有效\n",
"正在处理7.23方差_高二_数学\n",
"2024届高二10班\n",
"2024届高二10班 有效\n",
"2024届高二11班\n",
"2024届高二11班 有效\n",
"2024届高二01班\n",
"2024届高二01班 有效\n",
"2024届高二02班\n",
"2024届高二02班 有效\n",
"2024届高二03班\n",
"2024届高二03班 有效\n",
"2024届高二05班\n",
"2024届高二05班 有效\n",
"2024届高二06班\n",
"2024届高二06班 有效\n",
"2024届高二07班\n",
"2024届高二07班 有效\n",
"2024届高二09班\n",
"2024届高二09班 有效\n"
]
}
],
"source": [
"import zipfile,os,re,time\n",
"import pandas as pd\n",
"from pathlib import Path\n",
"\n",
"#设置届别与接受的比例阈值\n",
"gradename = \"2024届高二\"\n",
"threshold = 0.5 #当班级提交人数超过该比例时数据有效\n",
"\n",
"#设置工作目录, 要求工作目录中恰有一个.tex文件或.txt文件)和一些.zip文件其余不论\n",
"filepath = \"数据导入作业文件\"\n",
"\n",
"#生成文件名tex_file和zip_file\n",
"files = [os.path.join(filepath,f) for f in os.listdir(filepath)]\n",
"tex_file = [f for f in files if \".tex\" in f or \".txt\" in f][0]\n",
"zip_files = [f for f in files if \".zip\" in f]\n",
"\n",
"#分割各次作业数据\n",
"with open(tex_file,\"r\",encoding = \"utf8\") as f:\n",
" tex_data = f.read().strip()\n",
"tex_data = re.sub(r\"\\t+\",r\" \",tex_data)\n",
"tex_data = re.sub(r\"\\n{2,}\",\"---split---\",tex_data)\n",
"homeworklist = tex_data.split(\"---split---\")\n",
"\n",
"#读取各次作业首行(文件名)与次行(日期)并组织字典结构\n",
"homeworkdict = {}\n",
"for hwk in homeworklist:\n",
" hwkdata = hwk.strip().split(\"\\n\")\n",
" id = hwkdata.pop(0)\n",
" date = hwkdata.pop(0)\n",
" homeworkdict[id] = {}\n",
" homeworkdict[id][\"date\"] = date\n",
" homeworkdict[id][\"usage_data\"] = hwkdata\n",
"\n",
"#测试是否每一项都有相应的zip文件与之对应\n",
"execflag = True\n",
"for id in homeworkdict:\n",
" if os.path.join(\"数据导入作业文件\",id+\".zip\") in zip_files:\n",
" print(\"zip文件在文件夹中:\",id)\n",
" else:\n",
" execflag = False\n",
" print(\"!!!zip文件不在文件夹中:\",id)\n",
"\n",
"\n",
"if execflag:\n",
" outputstr = \"usages\\n\\n\"\n",
" for id in homeworkdict:\n",
" print(\"正在处理%s\"%id)\n",
" date = homeworkdict[id][\"date\"]\n",
" #在zip文件中找到包含正确率数据的文件\n",
" zip_file = os.path.join(\"数据导入作业文件\",id+\".zip\")\n",
" zf = zipfile.ZipFile(zip_file)\n",
" statfiles = [f.filename for f in zf.filelist if \"试题分析\" in f.filename]\n",
" handinfiles = [f.filename for f in zf.filelist if \"学生成绩\" in f.filename]\n",
"\n",
" #生成答题纸区域编号与题目ID的对应\n",
" correspondence_dict = {}\n",
" if \"statsfile.xlsx\" in os.listdir(\"临时文件\"):\n",
" os.remove(\"临时文件/statsfile.xlsx\")\n",
" extractedpath = Path(zf.extract(statfiles[0]))\n",
" extractedpath.rename(\"临时文件/statsfile.xlsx\")\n",
" df = pd.read_excel(\"临时文件/statsfile.xlsx\")\n",
" problems_indexes = list(df[df.columns[0]][2:])\n",
"\n",
" for pind in problems_indexes:\n",
" for p in homeworkdict[id][\"usage_data\"]:\n",
" if len(re.findall(\"^\"+pind+\"\\s\",p))>0:\n",
" correspondence_dict[pind] = p[p.index(\" \")+1:]\n",
"\n",
" for sf in [f for f in statfiles]:\n",
" #读取文件生成区域列表与难度列表\n",
" classname = gradename+re.findall(r\"高[一二三]([\\d]*?)班\",sf)[0].zfill(2)+\"班\"\n",
" print(classname)\n",
" if \"statsfile.xlsx\" in os.listdir(\"临时文件\"):\n",
" os.remove(\"临时文件/statsfile.xlsx\")\n",
" extractedpath = Path(zf.extract(sf))\n",
" extractedpath.rename(\"临时文件/statsfile.xlsx\")\n",
" df = pd.read_excel(\"临时文件/statsfile.xlsx\")\n",
" if \"handinfile.xlsx\" in os.listdir(\"临时文件\"):\n",
" os.remove(\"临时文件/handinfile.xlsx\")\n",
" extractedpath = Path(zf.extract(sf[:sf.find(\"数学\")]+\"学生成绩.xlsx\"))\n",
" extractedpath.rename(\"临时文件/handinfile.xlsx\")\n",
" handindf = pd.read_excel(\"临时文件/handinfile.xlsx\")\n",
" if str(handindf.iloc[int(len(handindf)*threshold)][\"Unnamed: 4\"]) != \"缺考\":\n",
" difficulties = list(df[df.columns[9]][2:])\n",
" problems_indexes = list(df[df.columns[0]][2:])\n",
" #生成该班级题目ID对应难度列表组成的字典\n",
" class_difficulty = {}\n",
" for i in range(len(difficulties)):\n",
" if problems_indexes[i] in correspondence_dict:\n",
" if not correspondence_dict[problems_indexes[i]] in class_difficulty:\n",
" class_difficulty[correspondence_dict[problems_indexes[i]]] = [difficulties[i]]\n",
" else:\n",
" class_difficulty[correspondence_dict[problems_indexes[i]]].append(difficulties[i])\n",
" #添加到输出字符串中\n",
" for id in class_difficulty:\n",
" outputstr += id + \"\\n\" + date + \"\\t\" + classname + \"\\t\" + \"\\t\".join([(\"%.3f\" %float(v)) for v in class_difficulty[id]]) + \"\\n\\n\"\n",
" print(classname, \"有效\")\n",
" else:\n",
" print(classname, \"无效\")\n",
"\n",
"with open(\"临时文件/自动转换结果.txt\",\"w\",encoding = \"utf8\") as f:\n",
" f.write(outputstr)\n",
"with open(\"../文本文件/metadata.txt\",\"w\",encoding = \"utf8\") as f:\n",
" f.write(outputstr)\n",
"zf.close()"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"{'高二下数学周末卷2_高二_数学': {'date': '20230227',\n",
" 'usage_data': ['1.1 40037',\n",
" '1.2 40038',\n",
" '1.3 40039',\n",
" '1.4.1 40040',\n",
" '1.4.2 40040',\n",
" '1.4.3 40040',\n",
" '1.5 40041',\n",
" '1.6 40042',\n",
" '1.7 40043',\n",
" '1.8 40044',\n",
" '1.9 40045',\n",
" '1.10 40046',\n",
" '1.11 40047',\n",
" '1.12 40048',\n",
" '2.13 40049',\n",
" '2.14 40050',\n",
" '2.15 40051',\n",
" '2.16 40052',\n",
" '3.17.1 40053',\n",
" '3.17.2 40053',\n",
" '3.18.1 40054',\n",
" '3.18.2 40054',\n",
" '3.19.1 40055',\n",
" '3.19.2 40055',\n",
" '3.20.1 40056',\n",
" '3.20.2 40056',\n",
" '3.20.3 40056']},\n",
" '高二下数学周末卷3_高二_数学': {'date': '20230309',\n",
" 'usage_data': ['1.1 40140',\n",
" '1.2 40141',\n",
" '1.3 40142',\n",
" '1.4 40143',\n",
" '1.5 40144',\n",
" '1.6 40145',\n",
" '1.7 40146',\n",
" '1.8 40147',\n",
" '1.9 40148',\n",
" '1.10 40149',\n",
" '1.11 40150',\n",
" '1.12 40151',\n",
" '1.13 40152',\n",
" '1.14 40153',\n",
" '1.15 40154',\n",
" '2.16 40155',\n",
" '2.17 40156',\n",
" '3.18 40157',\n",
" '3.19.1 40158',\n",
" '3.19.2 40158',\n",
" '3.19.3 40158',\n",
" '3.2 40159',\n",
" '3.21.1 40160',\n",
" '3.21.2 40160',\n",
" '3.21.3 40160']},\n",
" '5.1.1导数的概念_高二_数学': {'date': '20230309',\n",
" 'usage_data': ['1.1 21365',\n",
" '1.2 21366',\n",
" '1.3 21367',\n",
" '1.4 21368',\n",
" '2.5 21369',\n",
" '3.6.1 21370',\n",
" '3.6.2 21370',\n",
" '3.7 21371',\n",
" '3.8.1 21372',\n",
" '3.8.2 21372',\n",
" '3.8.3 21372',\n",
" '3.9.1 21373',\n",
" '3.9.2 21373',\n",
" '3.10 21374']},\n",
" '5.1.2导数的几何意义_高二_数学': {'date': '20230313',\n",
" 'usage_data': ['1.1 21375',\n",
" '1.2 21376',\n",
" '2.3.1 21377',\n",
" '2.3.2 21377',\n",
" '2.4.1 21378',\n",
" '2.4.2 21378',\n",
" '2.5.1 21379',\n",
" '2.5.2 21379',\n",
" '2.6.1 21380',\n",
" '2.6.2 21380',\n",
" '2.6.3 21380',\n",
" '2.7.1 21381',\n",
" '2.7.2 21381',\n",
" '2.8 21382',\n",
" '2.9 21383']},\n",
" '高二下数学周末卷4_高二_数学': {'date': '20230313',\n",
" 'usage_data': ['1.1 40161',\n",
" '1.2 40162',\n",
" '1.3 40163',\n",
" '1.4 40164',\n",
" '1.5 40165',\n",
" '1.6 40166',\n",
" '1.7 40167',\n",
" '1.8 40168',\n",
" '1.9 40169',\n",
" '1.10 40170',\n",
" '2.11 40171',\n",
" '2.12 40172',\n",
" '2.13 40173',\n",
" '2.14 40174',\n",
" '2.15 40175',\n",
" '3.16 40176',\n",
" '3.17.1 40177',\n",
" '3.17.2 40177',\n",
" '3.18 40178',\n",
" '3.19 40179',\n",
" '3.20.1 40180',\n",
" '3.20.2 40180',\n",
" '3.20.3 40180']},\n",
" '5.2.1基本初等函数的导数_高二_数学': {'date': '20230313',\n",
" 'usage_data': ['1.1 21384',\n",
" '1.2 21385',\n",
" '1.3 21386',\n",
" '1.4 21387',\n",
" '2.5 21388',\n",
" '3.6.1 21389',\n",
" '3.6.2 21389',\n",
" '3.6.3 21389',\n",
" '3.6.4 21389',\n",
" '3.7 21390',\n",
" '3.8 21391',\n",
" '3.9 21392']},\n",
" '5.2.2导数的四则运算_高二_数学': {'date': '20230314',\n",
" 'usage_data': ['1.1 21393',\n",
" '1.2 21394',\n",
" '1.3 21395',\n",
" '1.4 21396',\n",
" '1.5 21397',\n",
" '2.6.1 21398',\n",
" '2.6.2 21398',\n",
" '2.6.3 21398',\n",
" '2.7.1 21399',\n",
" '2.7.2 21399',\n",
" '2.7.3 21399',\n",
" '2.7.4 21399',\n",
" '2.8.1 21400',\n",
" '2.8.2 21400',\n",
" '2.9.1 21401',\n",
" '2.9.2 21401']},\n",
" '531利用导数研究函数的单调性_高二_数学': {'date': '20230317',\n",
" 'usage_data': ['1.1.1 21411',\n",
" '1.1.2 21411',\n",
" '1.2.1 21412',\n",
" '1.2.2 21412',\n",
" '1.3.1 21413',\n",
" '1.3.2 21413',\n",
" '1.3.3 21413',\n",
" '1.4.1 21414',\n",
" '1.4.2 21414',\n",
" '1.5.1 21415',\n",
" '1.5.2 21415',\n",
" '1.6.1 21416',\n",
" '1.6.2 21416',\n",
" '1.6.3 21416',\n",
" '1.6.4 21416',\n",
" '1.7.1 21417',\n",
" '1.7.2 21417']},\n",
" '5321利用导数研究函数的极值_高二_数学': {'date': '20230320',\n",
" 'usage_data': ['1.1 21418',\n",
" '1.2 21419',\n",
" '1.3 21420',\n",
" '1.4 21421',\n",
" '2.5 21422',\n",
" '2.6 21423',\n",
" '2.7 21424',\n",
" '2.8 21425',\n",
" '2.9 21426',\n",
" '2.10 21427',\n",
" '2.11.1 21428',\n",
" '2.11.2 21428']},\n",
" '523简单复合函数的导数_高二_数学': {'date': '20230320',\n",
" 'usage_data': ['1.1.1 21402',\n",
" '1.1.2 21402',\n",
" '1.2 21403',\n",
" '1.3.1 21404',\n",
" '1.3.2 21404',\n",
" '1.3.3 21404',\n",
" '1.3.4 21404',\n",
" '1.4.1 21405',\n",
" '1.4.2 21405',\n",
" '1.5.1 21406',\n",
" '1.5.2 21406',\n",
" '1.6.1 21407',\n",
" '1.6.2 21407',\n",
" '1.7.1 21408',\n",
" '1.7.2 21408',\n",
" '1.8.1 21409',\n",
" '1.8.2 21409',\n",
" '1.9 21410']},\n",
" '高二下数学周末卷5_高二_数学': {'date': '20230320',\n",
" 'usage_data': ['1.1.1 40202',\n",
" '1.1.2 40202',\n",
" '1.1.3 40202',\n",
" '1.1.4 40202',\n",
" '1.1.5 40202',\n",
" '1.1.6 40202',\n",
" '1.2.1 40203',\n",
" '1.2.2 40203',\n",
" '1.2.3 40203',\n",
" '1.2.4 40203',\n",
" '1.2.5 40203',\n",
" '1.3.1 40204',\n",
" '1.3.2 40204',\n",
" '1.4.1 40205',\n",
" '1.4.2 40205',\n",
" '1.5.1 40206',\n",
" '1.5.2 40206',\n",
" '1.6.1 40207',\n",
" '1.6.2 40207',\n",
" '1.7.1 40208',\n",
" '1.7.2 40208',\n",
" '1.8.1 40209',\n",
" '1.8.2 40209',\n",
" '1.9.1 40210',\n",
" '1.9.2 40210',\n",
" '1.10.1 40211',\n",
" '1.10.2 40211',\n",
" '1.11.1 40212',\n",
" '1.11.2 40212',\n",
" '1.12.1 40213',\n",
" '1.12.2 40213',\n",
" '1.13 40214',\n",
" '1.14 40215',\n",
" '1.15 40216',\n",
" '1.16 40217',\n",
" '1.17 40218',\n",
" '1.18 40219',\n",
" '1.19 40220',\n",
" '1.20.1 40221',\n",
" '1.20.2 40221',\n",
" '2.21 40222',\n",
" '2.22 40223',\n",
" '2.23 40224',\n",
" '3.24 40225']},\n",
" '5322利用导数研究函数的最值_高二_数学': {'date': '20230323',\n",
" 'usage_data': ['1.1.1 21429',\n",
" '1.1.2 21429',\n",
" '1.1.3 21429',\n",
" '1.1.4 21429',\n",
" '1.2 21430',\n",
" '1.3 21431',\n",
" '1.4 21432',\n",
" '1.5 21433',\n",
" '1.6 21434',\n",
" '1.7 21435',\n",
" '1.8.1 21436',\n",
" '1.8.2 21436']},\n",
" '533利用导数解决实际问题_高二_数学': {'date': '20230324',\n",
" 'usage_data': ['1.1 21437',\n",
" '1.2 21438',\n",
" '1.3 21439',\n",
" '1.4.1 21440',\n",
" '1.4.2 21440']},\n",
" '高二下数学周末卷6_高二_数学': {'date': '20230327',\n",
" 'usage_data': ['1.1 40299',\n",
" '1.2 40300',\n",
" '1.3 40301',\n",
" '1.4 40302',\n",
" '1.5 40303',\n",
" '1.6 40304',\n",
" '1.7 40305',\n",
" '1.8 40306',\n",
" '1.9 40307',\n",
" '1.10 40308',\n",
" '1.11 40309',\n",
" '1.12 40310',\n",
" '2.13 40311',\n",
" '2.14.1 40312',\n",
" '2.14.2 40312',\n",
" '2.15.1 40313',\n",
" '2.15.2 40313',\n",
" '2.16.1 40314',\n",
" '2.16.2 40314',\n",
" '2.17.1 40315',\n",
" '2.17.2 40315',\n",
" '2.18.1 40316',\n",
" '2.18.2 40316']},\n",
" '6.51二项式定理1_高二_数学': {'date': '20230328',\n",
" 'usage_data': ['1.1.1 22084',\n",
" '1.1.2 22084',\n",
" '1.2.1 22085',\n",
" '1.2.2 22085',\n",
" '1.3.1 22086',\n",
" '1.3.2 22087',\n",
" '2.4 22088',\n",
" '3.5 22089',\n",
" '3.6 22090',\n",
" '3.7.1 22091',\n",
" '3.7.2 22091',\n",
" '3.8 22092',\n",
" '3.9 22093',\n",
" '3.10 22094']},\n",
" '6.52二项式定理2_高二_数学': {'date': '20230403',\n",
" 'usage_data': ['1.1 22095',\n",
" '2.2 22096',\n",
" '3.3.1 22097',\n",
" '3.3.2 22099',\n",
" '3.4 22100',\n",
" '3.5 22101',\n",
" '3.6 22102',\n",
" '3.7 22103',\n",
" '3.8.1 22104',\n",
" '3.8.2 22104',\n",
" '3.9 22105',\n",
" '3.10 22106']},\n",
" '高二下数学周末卷7_高二_数学': {'date': '20230403',\n",
" 'usage_data': ['1.1 40317',\n",
" '1.2 40318',\n",
" '1.3 40319',\n",
" '1.4 40320',\n",
" '1.5 40321',\n",
" '1.6 40322',\n",
" '1.7 40323',\n",
" '1.8 40324',\n",
" '1.9 40325',\n",
" '1.10 40326',\n",
" '1.11 40327',\n",
" '1.12 40328',\n",
" '1.13 40329',\n",
" '2.14 40330',\n",
" '2.15 40331',\n",
" '3.16.1 40332',\n",
" '3.16.2 40332',\n",
" '3.17.1 40333',\n",
" '3.17.2 40333',\n",
" '3.18.1 40334',\n",
" '3.18.2 40334',\n",
" '3.19.1 40335',\n",
" '3.19.2 40335',\n",
" '3.19.3 40335']},\n",
" '3.1空间向量及其运算_高二_数学': {'date': '20230410',\n",
" 'usage_data': ['1.1.1 22048',\n",
" '1.1.2 22048',\n",
" '1.1.3 22048',\n",
" '1.1.4 22048',\n",
" '1.2 22049',\n",
" '1.3 22050',\n",
" '1.4.1 22051',\n",
" '1.4.2 22051',\n",
" '1.5 22052']},\n",
" '3.3空间向量的坐标表示_高二_数学': {'date': '20230411',\n",
" 'usage_data': ['1.1.1 22058',\n",
" '1.1.2 22058',\n",
" '1.1.3 22058',\n",
" '1.1.4 22058',\n",
" '1.1.5 22058',\n",
" '1.1.6 22058',\n",
" '1.2.1 22059',\n",
" '1.2.2 22059',\n",
" '1.3.1 22060',\n",
" '1.3.2 22060',\n",
" '1.4 22061',\n",
" '1.5 22062',\n",
" '1.6 22063',\n",
" '1.7.1 22064',\n",
" '1.7.2 22065',\n",
" '1.8 22066']},\n",
" '3.2空间向量基本定理_高二_数学': {'date': '20230412',\n",
" 'usage_data': ['1.1.1 22053',\n",
" '1.1.2 22053',\n",
" '1.1.3 22053',\n",
" '1.2 22054',\n",
" '1.3 22055',\n",
" '1.4 22056',\n",
" '1.5.1 22057',\n",
" '1.5.2 22057']},\n",
" '高二下数学周末卷8_高二_数学': {'date': '20230412',\n",
" 'usage_data': ['1.1 40570',\n",
" '1.2 40571',\n",
" '1.3 40572',\n",
" '1.4 40573',\n",
" '1.5 40574',\n",
" '1.6 40575',\n",
" '1.7 40576',\n",
" '1.8 40577',\n",
" '1.9 40578',\n",
" '1.10 40579',\n",
" '1.11 40580',\n",
" '1.12 40581',\n",
" '1.13 40582',\n",
" '1.14 40583',\n",
" '1.15 40584',\n",
" '2.16.1 40585',\n",
" '2.16.2 40585',\n",
" '2.16.3 40585',\n",
" '2.17 40586',\n",
" '2.18 40587']},\n",
" '3.41空间向量在立体几何中的应用1_高二_数学': {'date': '20230413',\n",
" 'usage_data': ['1.1 22067',\n",
" '1.2.1 22068',\n",
" '1.2.2 22068',\n",
" '1.3.1 22069',\n",
" '1.3.2 22069',\n",
" '1.4.1 22070',\n",
" '1.4.2 22070',\n",
" '1.4.3 22070']},\n",
" '3.42空间向量在立体几何中的应用2_高二_数学': {'date': '20230413',\n",
" 'usage_data': ['1.1.1 22071',\n",
" '1.1.2 22071',\n",
" '1.1.3 22071',\n",
" '1.1.4 22071',\n",
" '1.2.1 22072',\n",
" '1.2.2 22072',\n",
" '1.2.3 22072',\n",
" '1.2.4 22072',\n",
" '1.3.1 22073',\n",
" '1.3.2 22073',\n",
" '1.4 22074',\n",
" '1.5 22075',\n",
" '1.6 22076',\n",
" '1.7 22077',\n",
" '1.8.1 22078',\n",
" '1.8.2 22078']},\n",
" '3.43空间向量在立体几何中的应用3_高二_数学': {'date': '20230414',\n",
" 'usage_data': ['1.1 22079',\n",
" '1.2.1 22080',\n",
" '1.2.2 22080',\n",
" '1.2.3 22080',\n",
" '1.3 22081',\n",
" '1.4 22082',\n",
" '1.5.1 22083',\n",
" '1.5.2 22083',\n",
" '1.5.3 22083']},\n",
" '7.11条件概率_高二_数学': {'date': '20230425',\n",
" 'usage_data': ['1.1 4572',\n",
" '1.2 4573',\n",
" '1.3 4574',\n",
" '1.4 4575',\n",
" '1.5 4576',\n",
" '2.6 4577',\n",
" '2.7 4578']},\n",
" '7.12全概率公式_高二_数学': {'date': '20230426',\n",
" 'usage_data': ['1.1 4579',\n",
" '1.2 4580',\n",
" '1.3 4581',\n",
" '1.4 4582',\n",
" '1.5 4583',\n",
" '2.6 4584',\n",
" '2.7 4585',\n",
" '2.8 4586',\n",
" '2.9 4587']},\n",
" '7.21随机变量与分布_高二_数学': {'date': '20230504',\n",
" 'usage_data': ['1.1 4588',\n",
" '1.2 4589',\n",
" '1.3 4590',\n",
" '1.4 4591',\n",
" '2.5 4592',\n",
" '2.6 4593',\n",
" '2.7.1 4594',\n",
" '2.7.2 4594']},\n",
" '高二下数学周末卷10_高二_数学': {'date': '20230504',\n",
" 'usage_data': ['1.1 40647',\n",
" '1.2 40648',\n",
" '1.3 40649',\n",
" '1.4 40650',\n",
" '1.5 40651',\n",
" '1.6 40652',\n",
" '1.7.1 40653',\n",
" '1.7.2 40653',\n",
" '1.8 40654',\n",
" '1.9 40655',\n",
" '1.10 40656',\n",
" '1.11 40657',\n",
" '1.12 40658',\n",
" '1.13 40659',\n",
" '1.14 40660',\n",
" '2.15.1 40661',\n",
" '2.15.2 40661',\n",
" '2.15.3 40661',\n",
" '2.16.1 40662',\n",
" '2.16.2 40662',\n",
" '2.17 40663',\n",
" '2.18 40664',\n",
" '2.19 40665',\n",
" '2.20 40666']},\n",
" '7.22期望_高二_数学': {'date': '20230504',\n",
" 'usage_data': ['1.1 4596',\n",
" '2.2.1 4597',\n",
" '2.2.2 4597',\n",
" '2.3.1 4598',\n",
" '2.3.2 4598',\n",
" '2.4.1 4599',\n",
" '2.4.2 4599']},\n",
" '7.23方差_高二_数学': {'date': '20230505',\n",
" 'usage_data': ['1.1 4600',\n",
" '2.2.1 4601',\n",
" '2.2.2 4601',\n",
" '2.3.1 4602',\n",
" '2.3.2 4602']}}"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"homeworkdict"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "mathdept",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.9.15"
},
"orig_nbformat": 4,
"vscode": {
"interpreter": {
"hash": "ff3c292c316ba85de6f1ad75f19c731e79d694e741b6f515ec18f14996fe48dc"
}
}
},
"nbformat": 4,
"nbformat_minor": 2
}