如何配置nops_eval()生成适配Moodle的反馈文件夹命名格式?
实现nops_eval()自动生成符合Moodle要求的反馈文件夹命名
完全可以通过R代码实现自动重命名,具体步骤如下:
1. 读取评分CSV的学生信息
先将包含学生全名和ID的评分工作表导入R环境,建立信息关联:
# 替换为你的评分CSV文件路径 student_info <- read.csv("path/to/grading_sheet.csv", stringsAsFactors = FALSE) # 假设CSV列名为"Fullname"和"IDnumber",请根据实际列名调整 names(student_info) <- c("Fullname", "IDnumber")
2. 运行nops_eval()生成初始反馈
按常规流程执行nops_eval()生成初始反馈文件夹(默认命名一般以学生ID或考试标识为主):
# 替换为你的nops_eval()参数 nops_eval( exam = "your_exam_file.Rmd", solutions = "your_solutions_file.R", scans = "path/to/scans", results = "path/to/initial_feedback" # 指定初始反馈输出路径 )
3. 批量重命名为Moodle要求的格式
遍历初始反馈文件夹下的子文件夹,匹配学生信息后批量重命名:
# 获取初始反馈路径下的所有子文件夹 initial_folders <- list.dirs("path/to/initial_feedback", recursive = FALSE) # 逐个匹配并重命名 for (folder in initial_folders) { # 提取默认文件夹名(假设默认文件夹名等于学生ID,若不是需调整匹配逻辑) folder_id <- basename(folder) # 匹配对应学生的全名和ID matched_student <- student_info[student_info$IDnumber == folder_id, ] if (nrow(matched_student) > 0) { # 构造Moodle要求的文件夹名称 new_folder_name <- paste0(matched_student$Fullname, "_", matched_student$IDnumber, "_assignsubmission_file_") new_folder_path <- file.path(dirname(folder), new_folder_name) # 执行重命名 file.rename(folder, new_folder_path) } }
注意事项
- 如果
nops_eval()默认生成的文件夹名不是纯ID,需要调整提取匹配标识的逻辑(比如从文件夹名中截取学号片段)。 - 确保CSV中的
IDnumber与默认文件夹的标识完全一致,避免匹配失败。 - 重命名前建议备份初始反馈文件夹,防止操作失误丢失数据。
内容的提问来源于stack exchange,提问作者user301818
相关产品推荐
相关产品推荐

