nops_eval生成的html个文件如何用学号命名?

How to name html files produced by nops_eval with the students ID?

我知道 nops_eval 创建了以学生 ID 命名的文件夹,并在每个文件夹中创建了一个 HTML 文件(所有学生都使用相同的名称)。我想要 HTML 包含学生 ID 或学生姓名的文件。每个学生都有一个文件夹,只是 HTML 文件都在同一个文件夹中,没有可能吗? 使用的代码:

eval <- nops_eval(register = "register_df.csv",
          solutions = "solutions.rds",
          scans = "nops_scan.zip",
          language = "pt",
          eval = exams_eval(partial = F, negative = -0.25, rule = "false"),
          dir = "eval",
          interactive = T,
          mark = F)

最近,在 2.4-0 版中 nops_eval() 获得了为评估结果插入自定义编写器的选项。所以,原则上,这是可以使用的。但是,如果重点只是重命名 HTML 文件,我可能会简单地 unzip() ZIP 文件,file.rename() HTML 文件,然后是 file.remove()以前的目录。

对我来说 Linux 这有效:

f <- unzip("nops_eval.zip")
id <- strsplit(f, "/", fixed = TRUE)
id <- sapply(id, function(x) x[length(x) - 1])
for(i in seq_along(id)) {
  file.rename(f[i], paste0(id[i], ".html"))
  file.remove(id[i])
}

注意:可能 f 中的文件路径是用反斜杠分隔的,而不是 Windows 中的斜杠。如果是这样,您必须在 strsplit() 调用中将 "/" 替换为 "\"