如何解压缩文件,更改csv表并再次压缩?

时间:2020-09-28 09:02:13

标签: r csv zip unzip

我有很多.zip文件。我需要:

  • 打开zip文件
  • 在其中编辑.csv表
  • 再次压缩文件,名称与开头相同

在R中有可能吗?对于许多文件来说,这是一项艰巨的任务,因为它是大型数据集,我需要按顺序进行处理。除了.csv文件之外,每个zip文件夹中还有一些其他文件。

1 个答案:

答案 0 :(得分:1)

使用unzipzip函数。在lapply循环中,我们首先创建一个tempfile,该unzip用于read.csv,并且可以grep使用。我们用toEdit <- c("df1.zip", "df2.zip", "df3.zip") lapply(toEdit, function(z) { temp <- tempfile() temp <- unzip(z) r <- read.csv(temp[grep("csv", temp)]) ## edit data r <- r/10 ## end edit data nn <- gsub("zip", "csv", z) write.csv(r, nn) zip(z, nn) unlink(temp) }) 标识.csv。然后编辑并逆转该过程。只有.csv得到更新,其他文件保持不变。

write("foo", "xy1.foo")
write("foo", "xy2.foo")
sapply(1:3, function(i) {
  write.csv(data.frame(matrix(1:12, 3, 4)), paste0("df", i, ".csv"))
  zip(paste0("df", i, ".zip"), paste0("df", i, ".csv"))
  zip(paste0("df", i, ".zip"), "xy1.foo")
  zip(paste0("df", i, ".zip"), "xy2.foo")
})

示例数据:

使用一个.csv文件和其中的一些其他内容创建.zip存档。

{{1}}