我想使用R从zip文件中的zip文件中提取数据(即预先形成一些ZIP文件)。
示例"目录"我的一个数据点看起来像这样:
C:\ZipMother.zip\ZipChild.zip\index.txt
我的目标是阅读" index.txt"来自每个ZipChild.zip。问题是我有324个ZipMother.zip文件,平均有2000个ZipChild.zip文件,因此解压缩ZipMother.zip文件是一个问题,因为内存限制(ZipMother文件平均大约600兆字节)。
使用unzip包,我可以成功获取ZipMother中每个ZipChild的文件路径,但我无法使用它来列出ZipChild文件夹中的文件。
因此,
unzip("./ZipMother.zip",list=TRUE)
工作得很好,但是......
unzip("./ZipMother.zip/ZipChild.zip",list=TRUE)
给我以下错误
解压缩时出错(" ./ ZipMother.zip/ZipChild.zip" ;, list = TRUE): zip文件' ./ ZipMother.zip/ZipChild.zip'无法打开
有没有办法使用解压缩或其他方法从ZipChild文件中提取数据?
一旦我开始工作,我计划使用ldply函数将index.txt文件编译成数据集。
非常感谢任何输入。谢谢!
答案 0 :(得分:1)
可重复的示例(即具有适当结构的zip文件的链接)将非常有用,但如何:
tmpd <- tempdir()
## extract just the child
unzip("./ZipMother.zip",
files="zipChild.zip",exdir=tmpd)
ff <- file.path(tmpd,"zipChild.zip")
index <- unzip(ff,list=TRUE)
unlink(ff)
为方便起见,这显然可以打包成一个函数。
它可能很慢,但这意味着你不必一次解开一个以上的孩子......