You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何解决R语言解压.zip文件时报error 1 in extracting from zip的问题

问题根因

你的代码存在两处逻辑错误导致解压失败:

  • 调用list.files()时未开启full.names = TRUE参数,仅返回了zip文件的文件名,没有拼接temp目录的完整路径,R在当前工作目录找不到对应文件
  • 解压循环中unzip()的第一个参数传入了完整的file_names向量,而非每次循环对应的单个压缩包路径

修正后可运行代码

## 声明对应月份的变量
months <- c(202011:202012,202101:202110)

## 声明源文件存储目录
storage <- "C:\\Users\\...\\start"
# 自动创建目录避免路径不存在报错
if(!dir.exists(storage)) dir.create(storage, recursive = TRUE)

## 生成所有下载链接
urls <- paste0("https://divvy-tripdata.s3.amazonaws.com/",months, "-divvy-tripdata.zip")

temp <- tempdir()
tempfile <- paste0(temp,"\\",months,".zip")

## 批量下载12个月的压缩包
for(i in seq(urls)){
  download.file(urls[i],tempfile[i], mode="wb")
}

## 关键:获取zip文件的完整路径,加full.names = TRUE
file_names <- list.files(temp, pattern = "\\.zip$", full.names = TRUE)

## 循环解压,每次传入单个文件路径
for (i in seq(file_names)){
  unzip(file_names[i], exdir = storage, overwrite = FALSE)
}

## 可选:合并所有csv到一个数据框
all_csv <- list.files(storage, pattern = "\\.csv$", full.names = TRUE)
library(data.table)
merged_df <- rbindlist(lapply(all_csv, fread))

补充说明

如果仍出现报错,可以优先检查两个点:

  • storage路径中的中文/特殊字符是否会导致R识别异常,尽量用纯英文路径
  • 可以将unzip()函数增加junkpaths = TRUE参数,避免压缩包内的嵌套目录导致的解压路径异常

内容的提问来源于stack exchange,提问作者Evgeny Politov

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 19:15:02