R:解压缩几个文件,每个文件都在新的子目录中或重命名

问题描述 投票:0回答:1

我设法修改了一些代码以解压缩许多文件。但是,解压缩时,具有相同名称的文件会出现被替换。

在我的工作目录中,我有.zip文件。我在该目录中创建了一个名为unzip的新文件夹,我在其中解压缩了文件。

dir.create(paste0(path, "/unzip/"))

ldply(.data = list.files(path = path, pattern = ".zip", full.names = T), .fun = unzip, exdir = paste0(path, "/unzip"), overwrite = FALSE)

由于每个.zip文件具有相同的体系结构,因此将替换文件。我的问题:1)有没有一种方法可以指定每个文件如果重命名都应该重命名?2)另一种方法是指定在unzip文件夹中,对于每个.zip文件,将创建一个新文件夹,其中将相应文件解压缩。

THX

r unzip
1个回答
1
投票

由于plyr软件包已被弃用,我将改用purrr::walk()。由于也使用了tidyverse,因此我正在加载整个stringr::str_c()。在下面的代码中,"zip_files"是包含zip文件的目录,"zip_out"是将文件提取到的文件夹,都在工作目录中。后者包含每个zip文件的文件夹。不需要预先创建文件夹,因为unzip()会为我们处理。

library(tidyverse)

file_names <- list.files("zip_files")
walk(file_names, ~ unzip(zipfile = str_c("zip_files/", .x), 
                         exdir = str_c("zip_out/", .x)))
© www.soinside.com 2019 - 2024. All rights reserved.