【问题标题】:R: Unzip several files, each in new subdirectory or renameR:解压缩几个文件,每个文件都在新的子目录中或重命名
【发布时间】:2019-10-03 10:50:23
【问题描述】:

我设法调整了一些代码来解压缩许多文件。 但是,解压缩时,同名文件似乎 被替换。

在我的工作目录中,我有 .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)另一种方法是指定在解压缩文件夹中,对于每个 .zip 文件,将创建一个新文件夹,在其中解压缩相应的文件。

谢谢

【问题讨论】:

    标签: r unzip


    【解决方案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)))
    

    【讨论】:

    • 谢谢,效果很好。确实walk()在这种情况下非常方便!谢谢你让我大开眼界!
    猜你喜欢
    • 2016-12-28
    • 1970-01-01
    • 1970-01-01
    • 2022-01-06
    • 1970-01-01
    • 2021-04-29
    • 1970-01-01
    • 2015-12-26
    • 2018-08-29
    相关资源
    最近更新 更多