-->

如何以编程提取/解压缩一个.7z压缩(7-ZIP)与R档(How to programmatical

2019-08-31 12:22发布

我想了许多与7-ZIP压缩文件中提取的自动化。 我需要这个过程自动化,因为一)有多年的数据,我想解锁和b)我想与别人分享我的代码,并阻止他们通过手重复这个过程。

我有我的电脑上安装了WinRAR和7-ZIP两者,则可以分别用这两个程序很容易地打开这些文件。

我一直在四处张望unzip untarunz命令,但我不相信任何人做什么,我需要。

我不知道什么压缩,但如果这有什么差别:每个文件只包含一个文件,它只是一个文本文件

我强烈希望,它不要求用户安装其他软件(如WinRAR或者7-Zip的),并与地执行命令的解决方案shell ,虽然我承认这个任务可能无法只用R和CRAN的软件包。 我真的相信运行shell.exec与其他参数这些文件安装用WinRAR的计算机上可能会奏效,但同样,我想避免安装如果可能的话。 :)

运行下面的代码将加载我试图解压文件-在.7z压缩文件files.data是需要解锁的内容。

# create a temporary file and temporary directory, download the file, extract the file to the temporary directory
tf <- tempfile() ; td <- tempdir()
file.path <- "ftp://ftp.ibge.gov.br/Orcamentos_Familiares/Pesquisa_de_Orcamentos_Familiares_2008_2009/Microdados/Dados.zip"
download.file( file.path , tf , mode = "wb" )
files.data <- unzip( tf , exdir = td )

# how do i unzip ANY of these .7z files?
files.data

谢谢!!! :)

Answer 1:

如果你有7z可执行在你的路径,你可以简单的使用system命令

system('7z e -o <output_dir> <archive_name>')



Answer 2:

这可以用做archive包 。

library(archive)
tf <- tempfile() ; td <- tempdir()
file.path <- "ftp://ftp.ibge.gov.br/Orcamentos_Familiares/Pesquisa_de_Orcamentos_Familiares_2008_2009/Microdados/Dados.zip"
download.file( file.path , tf , mode = "wb" )
archive(tf)

见https://github.com/jimhester/archive



文章来源: How to programmatically extract / unzip a .7z (7-zip) file with R
标签: r zip unzip 7zip rar