R:解压几个文件,每个文件在新的子目录或重命名
R: Unzip several files, each in new subdirectory or rename
我设法修改了一些代码来解压缩许多文件。
但是解压的时候会出现同名文件
被替换。
在我的工作目录中,我有 .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) 有没有办法指定每个文件都应该重命名 if double?
2) 另一种方法是指定在解压缩文件夹中,对于每个 .zip 文件,将创建一个新文件夹,在其中解压缩相应的文件。
谢谢
由于 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)))
我设法修改了一些代码来解压缩许多文件。 但是解压的时候会出现同名文件 被替换。
在我的工作目录中,我有 .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) 有没有办法指定每个文件都应该重命名 if double? 2) 另一种方法是指定在解压缩文件夹中,对于每个 .zip 文件,将创建一个新文件夹,在其中解压缩相应的文件。
谢谢
由于 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)))