如何在R语言中在线提取嵌套压缩包内的CSV文件?
提取嵌套压缩包中的CSV文件(R语言实现)
针对嵌套压缩包的情况,你可以通过临时目录+分步解压的方式处理,以下是完整实现代码:
# 1. 下载外层压缩包到临时文件 outer_temp <- tempfile(fileext = ".zip") download.file("http://fakeurl.com/data/outer_filename.zip", outer_temp, mode = "wb") # 2. 创建临时目录,存放外层解压后的文件 temp_dir <- tempdir() unzip(outer_temp, exdir = temp_dir) # 3. 定位内层压缩包(假设内层包名为inner_data.zip,不确定的话可通过list.files遍历查找) inner_zip_path <- file.path(temp_dir, "inner_data.zip") # 4. 解压内层压缩包到临时目录 unzip(inner_zip_path, exdir = temp_dir) # 5. 读取目标CSV文件到数据框 csv_path <- file.path(temp_dir, "data.csv") db <- read.csv(csv_path, header = TRUE) # 可选:清理临时文件(避免占用空间) file.remove(outer_temp, inner_zip_path, csv_path)
关键细节说明
- 用
tempfile()和tempdir()创建系统临时文件/目录,不会污染本地工作目录 - 若不确定内层压缩包名称,可执行
list.files(temp_dir, pattern = "\\.zip$")列出所有解压后的压缩包,再根据实际情况筛选 - 存在多个内层压缩包时,可通过循环遍历批量处理CSV文件
内容的提问来源于stack exchange,提问作者Karimic Magellan
相关产品推荐
相关产品推荐

