询问作者使用程序前,请仔细阅读本教程,90%的问题都可以在这里找到答案!

写给谁

  • 需要使用该程序进行数据处理的小伙伴
  • 想要了解技术实现思路的人(先留一个坑,以后有空再填)

功能

  • 制作每日到课率表
  • 制作异常情况表 + 截图重命名

程序下载

点击 :point_right: data-make.py 下载使用

Note: 本代码使用的 Python 版本为 3.8.8 (请保证使用的 Python 版本至少是 3.0.0 之后),且需要安装 numpypandas 两个库

python -m pip install numpy
python -m pip install pandas

Warn: 每学期需要更新代码中 crtyearweek1mweek1dweek1y 参数值

开始使用

1. 数据准备

(1)目录结构示例

说明:备注【命名】则是需要确保文件或文件夹名称符合示例要求

.
├── 第7周异常情况记录备案.xlsx     # 确保异常记录都是本周的即可(如果没有异常,则准备一个没有内容,只有大表头和小表头的表)
├── 闻韶楼.xlsx                   # 确保数据在第一个sheet里
├── 天山堂                        # 文件夹
│   ├── 天山堂.xlsx               # 确保数据在第一个sheet里
│   └── 第7周                     # 【命名】第7周√,第七周×
│       ├── 周一                  # 【命名】昨天的截图(必需包含9-11节,可以多不能少,为了方便通常整个复制过来;如果是周一就只留周一的截图即可)
│       │   ├── 1-2节             # 【命名】
│       │   │   ├── A302.JPG      # A302-1.JPG无法识别,需手动移动到相应文件夹(程序会根据异常情况主动搜索相应JPG,未找到的会打印输出提示出来)
│       │   │   └── B401.JPG
│       │   ├── 3-4节             # 【命名】
│       │   ├── 5-6节             # 【命名】
│       │   ├── 7-8节             # 【命名】
│       │   └── 9-11节            # 【命名】
│       └── 周二                  # 【命名】今天的截图,目录结构同周一(可以多不能少,例如可以有晚上9-11节的截图)
└── 秦岭堂                        # 目录结构同天山堂

截图示例(./ 表示当前目录,使用相对路径)

路径示例 路径示例
data-env1.png ./ data-env2.png ./天山堂/
data-env3.png ./天山堂/第7周/ data-env4.png ./天山堂/第7周/周二/
data-env5.png ./天山堂/第7周/周二/7-8节/  

(2)到课率原始数据【查课助理】

只保留小表头 + 今天要处理的数据(eg. 周二9-11+周三1-8),建议按行复制,不要遗漏备注,最后另存为新表,数据存入新表的第一个sheet

original-data.png
此处以秦岭堂为例,天山堂、闻韶楼同理

(3)异常情况记录备案【办公室助理】

如果有上周周5异常课程的记录,需删除(删除后序号无需调整),保证记录的异常情况都是本周的,其余不变

office.png

(4)截图

截图路径示例(注意:截图存放在第7周,不是第七周)

F:\到课情况原始数据\20231017\天山堂   #「第7周」文件夹上一级

data-env2.png

2. 运行程序

(1)打开cmd

cmd.png

(2)运行程序

python .\data-make.py  # 运行程序

data-make.png
选择闻韶楼 or 天山堂/秦岭堂

3. 输入选项

  • 第一项:模式选择【参考运行程序(2)
  • 第二项:数据地点(闻韶楼模式下无需输入)
  • 第三项:原始查课数据路径(小表头 + 今天待做数据)【详见数据准备(2)
  • 第四项:异常到课数据路径【详见数据准备(3)
  • 第五项:截图文件夹路径【详见数据准备(4)
  • 第六项:生成文件路径,即文件输出位置

nor-make-input.png
输入概览

4. 打印输出(用作检查)

输出
nor-make-report1.png

and another 输出
nor-make-report2.png

5. 见证奇迹

示例

20231017天山堂                                              # 文件夹
├── 天山堂10月17日学生到课情况统计表.xlsx                     # 到课率表
└── 10月17日榆中校区截图                                     # 文件夹
    ├── 天山堂2023秋季学期异常课堂截图记录(20231017).xlsx    # 异常情况表
    ├── 20231017天山堂截图1.JPG                              # 截图
    ├── 20231017天山堂截图2.JPG
    └── 20231017天山堂截图3.JPG  
路径示例 表格内容
result1.png 生成总文件夹 result3.png 每日到课率表
result2.png 到课率表 + 截图文件夹 result5.png 异常情况表
result4.png 异常情况表 + 截图  

节假日

Note: 节假日处理数据的助理需要且只需要处理当天的数据(包括晚上)

1. 保证输入的到课率数据为对应时间段的数据(eg. 当天1-11节)

与前面操作相同(略)

2. 先改变原始数据星期列(查课助理到课率表+办公室助理异常情况表均需更改)为今天真实星期,再将程序输出的到课率表的星期列调回原来的星期

a. 查课助理到课率表星期列更改

holiday-checkdata.png

b. 办公室助理异常情况表星期列更改

holiday-officedata.png

补充:Excel单元格快速填充(三步)

filldata-choose.png
第一步
filldata-enter.png
第二步
filldata-fill.png
第三步

c. 程序输出的到课率表星期列调回原值

output-data.png

程序跑不了

  • 输入路径存在空格【重命名文件/文件夹,删去空格】
  • 原始查课数据未经选择直接丢给程序 【处理方法见数据准备(2)
  • 原始查课数据中到课人数存在空值 【此时需要赋值为0】

程序跑完后

重点是每日到课率表

  • 加入大表头(仔细仔细再仔细:日期、节次、地点
  • 调格式(字体行高表头加粗
  • 到课率低于70%标黄
  • 调整最后一列备注
  • 最后一行加入备注说明

Leave a comment