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

如何在Windows系统的R中批量解压不同文件夹下的.gz文件

解决Windows下R批量解压.gz文件并删除原包的方法

方法一:使用R.utils包(推荐,无需依赖系统环境)

这个包的gunzip函数专门处理.gz格式文件,支持一键解压并删除原压缩包,操作稳定可靠。

# 首次运行需安装包
install.packages("R.utils")

# 加载工具包
library(R.utils)

# 设置根文件夹路径(替换为你的Folder1实际路径,比如"C:/Data/Folder1")
root_dir <- "C:/Your/Path/To/Folder1"

# 递归查找所有子文件夹中的.gz文件,获取完整路径
gz_files <- list.files(
  path = root_dir,
  pattern = "\\.gz$",  # 精准匹配.gz结尾的文件
  recursive = TRUE,
  full.names = TRUE
)

# 遍历处理每个.gz文件
for (file in gz_files) {
  # 解压到原文件夹,自动去掉.gz后缀,解压后删除原压缩包
  gunzip(
    filename = file,
    destname = sub("\\.gz$", "", file),
    overwrite = TRUE,  # 允许覆盖已存在的同名解压文件,可根据需求改为FALSE
    remove = TRUE
  )
  # 可选:打印处理进度
  cat("已完成:", file, "\n")
}

方法二:调用Windows系统命令(需额外配置)

如果你的Windows环境已安装gzip工具(比如Git Bash、7-Zip并添加到系统环境变量),可以直接调用系统命令:

root_dir <- "C:/Your/Path/To/Folder1"
gz_files <- list.files(root_dir, pattern = "\\.gz$", recursive = TRUE, full.names = TRUE)

for (file in gz_files) {
  # -d参数表示解压,执行后自动删除原.gz文件
  system(paste0('gzip -d "', file, '"'))
  cat("已完成:", file, "\n")
}

关键说明

  • list.files(recursive=TRUE)会遍历根目录下所有子文件夹,确保不会遗漏任何.gz文件
  • 两种方法都会将解压后的文件保留在原.gz文件所在的子文件夹中,完全符合需求

内容的提问来源于stack exchange,提问作者Alexia k Boston

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 01:38:18