Skip to content

wdtastasetg/homework_check

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

作业管理系统使用说明

这是一个用于自动化管理学生作业的 Python 工具集,包含名单提取、邮件下载、提交检查和作业批改功能。

1. 环境配置与依赖安装

本系统依赖 Python 3 环境。在使用前,请确保安装了以下第三方库:

pip install pandas openpyxl
  • pandas: 用于处理 Excel 名单数据。
  • openpyxl: pandas 读取 .xlsx 文件所需的引擎。

其他库(如 imaplib, email, json, os, re 等)均为 Python 标准库,无需额外安装。

2. 邮箱配置说明 (mail.py)

mail.py 脚本用于从 QQ 邮箱自动下载作业附件。为了使其正常工作,您需要配置 IMAP 服务并获取授权码。

步骤一:开启 IMAP 服务

  1. 登录网页版 QQ 邮箱。
  2. 点击顶部 设置 -> 账号
  3. 向下滚动找到 POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务 部分。
  4. 开启 IMAP/SMTP服务

步骤二:获取授权码

  1. 开启服务时,系统会要求进行验证(如短信验证)。
  2. 验证通过后,系统会显示一串 授权码(通常是16位字母,不包含空格)。
  3. 请注意:这串授权码就是您的“密码”,请妥善保管。

步骤三:修改代码

打开 mail.py 文件,找到以下代码段(约第 8-11 行),将邮箱地址和授权码替换为您自己的:

# 连接到QQ邮箱IMAP服务器
mail = imaplib.IMAP4_SSL("imap.qq.com")
# 请将下方的账号和授权码替换为您自己的
# 第一个参数: 您的QQ邮箱地址
# 第二个参数: 步骤二中获取的16位授权码 (不是QQ登录密码!)
mail.login("您的QQ号@qq.com", "您的授权码")

3. 功能模块介绍

您可以通过运行 main.py 来统一调用以下功能:

python3 main.py

1. 提取名单 (extract.py)

  • 功能: 从 Excel 文件(默认为 总名单.xlsx)中提取学生学号和姓名。
  • 输出: 生成 students.json 文件,供后续模块使用。

2. 下载作业 (mail.py)

  • 功能: 连接配置好的 QQ 邮箱,搜索指定日期范围内的邮件。
  • 特点:
    • 自动识别邮件主题或附件名中的“实验X”或“作业X”进行分类。
    • 自动下载附件到 downloads/ 目录下的对应文件夹(如 LAB4, 课堂作业2)。
    • 智能重命名:如果附件文件名缺失身份信息,会自动尝试用邮件主题补全(例如加上学号姓名)。

3. 检查提交 (check.py)

  • 功能: 对比 students.json 名单和 downloads/ 下指定文件夹内的文件。
  • 输出: 生成提交情况报告(包含已提交和未提交名单),并计算提交率。

4. 批改作业 (grade.py)

  • 功能: 交互式批改助手。
  • 操作:
    • 输入要批改的文件夹名称。
    • 程序会自动打开第一个作业文件。
    • 在终端输入分数后,程序会自动记录并打开下一个文件。
    • 支持跳过 (s) 和中途退出保存 (q)。
  • 输出: 生成 文件夹名_grades.json 成绩单。

4. 常见问题与插件推荐

无法在 VS Code 中预览 Word 文档 (.doc/.docx)

VS Code 默认将 Word 文档视为文本文件打开,会导致乱码。为了在批改时正常预览 Word 文档,强烈建议安装以下插件

  • Office Viewer (插件ID: cweijan.vscode-office)
    • 安装后,点击 .docx.doc 文件即可在 VS Code 中直接预览内容。

无法预览 PDF 文件

如果 VS Code 无法预览 PDF,建议安装:

  • PDF Viewer (插件ID: tomoki1207.pdf) 或类似插件。

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages