如何通过read.csv直接读取Moodle插件文件URL中的CSV数据?
直接读取Moodle中CSV文件的解决方案
获取带强制下载参数的Moodle文件URL
Moodle默认的文件链接会跳转到HTML页面,而非直接返回文件内容。解决办法是拿到带forcedownload=1参数的直接下载链接:- 在Moodle里找到目标CSV文件,右键点击它的下载按钮,复制完整链接地址。这个链接末尾会带有
forcedownload=1,格式大概是https://你的Moodle域名/pluginfile.php/xxx/mod_assign/introattachment/0/数据文件名.csv?forcedownload=1。 - 把这个URL给学生用
read.csv()读取,示例代码:
这个参数会让Moodle直接返回原始CSV数据,而不是HTML页面。data <- read.csv("https://你的Moodle域名/pluginfile.php/xxx/mod_assign/introattachment/0/数据文件名.csv?forcedownload=1")
- 在Moodle里找到目标CSV文件,右键点击它的下载按钮,复制完整链接地址。这个链接末尾会带有
在exams题目里嵌入正确URL
编写exams的.Rmd或.Rnw题目时,直接把带forcedownload=1的URL写进给学生的示例代码里。同时要确认文件权限设置正确——必须让参与测试的学生能访问该文件。提前验证URL可用性
先自己测试:在浏览器打开这个URL,应该直接下载CSV文件;或者在R里运行read.csv(),确认能读到正常数据而非HTML代码。备选:直接嵌入CSV数据(适合小文件)
如果CSV文件不大,干脆把数据直接写进代码里,彻底绕开文件读取问题,比如:data <- data.frame( 列名1 = c(1, 2, 3), 列名2 = c("a", "b", "c") )这种方式对新手学生最友好,完全不会出现路径或URL的操作失误。
内容的提问来源于stack exchange,提问作者Alex Michael
相关产品推荐
相关产品推荐

