7-Zipで圧縮された多数のファイルの抽出を自動化しようとしています。このプロセスを自動化する必要があります。a)ロック解除したいデータが何年もあり、b)コードを他の人と共有して、プロセスが手動で繰り返されないようにしたいからです。
WinRARと7-Zipの両方をコンピューターにインストールしており、どちらのプログラムでもこれらのファイルを個別に簡単に開くことができます。
私はunzip
untar
とunz
コマンドを見て回りましたが、それらのどれもが私が必要とすることをするとは思わない。
圧縮については何も知りませんが、違いがある場合は、これらの各ファイルにはoneファイルのみが含まれ、それは単なるテキストファイルです。
ユーザーが追加のソフトウェア(WinRARや7-Zipなど)をインストールしてShell
でコマンドを実行する必要がないソリューションを強く望みますが、このタスクはRおよびCRANパッケージだけでは不可能かもしれないことを認めます。これらのファイルで追加パラメーターを使用してShell.exec
を実行すると、WinRARがインストールされているコンピューターで機能する可能性があると思いますが、可能であれば、そのインストールを避けたいと思います。 :)
以下のコードを実行すると、抽出しようとしているファイルが読み込まれます。files.data
の.7zファイルは、ロックを解除する必要があります。
# 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
ありがとう!!! :)
パスに_7z
_実行可能ファイルがある場合、単純にsystem
コマンドを使用できます
system('7z e -o <output_dir> <archive_name>')
これは archive
package で実行できます。
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 を参照してください