如何解决R语言中从网页导入ODS文件时的报错问题?
解决读取ODS文件时的
content.xml不存在报错 先排查下载文件有效性:直接用
download.file可能未正确获取ODS文件,而是下载到了网页内容。可以通过以下代码检查:file.info(f) # 查看文件大小,若只有几KB大概率是网页 readLines(f, n=10) # 查看文件开头内容,若有HTML标签则说明下载的是网页方案1:用
httr包处理请求下载
部分网站需要正确的请求头或处理重定向,httr能更好地处理这类情况:library(readODS) library(httr) url <- "https://fingertips.phe.org.uk/documents/EMData.ods" # 发送请求并检查状态 resp <- GET(url) stop_for_status(resp) # 将二进制内容写入临时ODS文件 temp_file <- tempfile(fileext = ".ods") writeBin(content(resp, "raw"), temp_file) # 读取文件 data <- read_ods(temp_file)方案2:手动下载后读取
如果代码下载始终有问题,直接在浏览器打开目标URL,手动将文件保存到本地,再用以下代码读取:library(readODS) data <- read_ods("本地保存的EMData.ods路径")
报错原因:download.file默认的下载方法未正确处理目标网站的请求,导致下载的不是标准ODS压缩包,而是HTML网页,解压时自然找不到content.xml文件。
内容的提问来源于stack exchange,提问作者Jason
相关产品推荐
相关产品推荐

