欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

使用 R 来解压和压缩 .tar.gz.zip 和其他格式的文件

最编程 2024-04-28 16:14:41
...
【直播预告】大模型会取代程序员吗?”

最近尝试用 R 对一些文件进行批量的解压与压缩,这里记录一些常用的解压与压缩的方法。

由于解压与压缩是对称的两种方法,这里我们着重以对文件的解压为例,分不同的格式进行讲解。

 

.zip

压缩:zip()

解压:unzip()

若要压缩文件,就直接在 zip() 函数的第一个参数里面输入压缩后的文件名,第二个参数输入压缩前的文件名。

而解压文件就更简单了,直接利用 unzip() 里面加上需要解压的文件名称即可。

 

.tar.gz

压缩:tar()

解压:untar()

 .zip 后缀的压缩文件。

 

.gz 与 .bz2

这两个压缩文件与前面的相比,是最与众不同的,因为这两种后缀的文件,可以称之为压缩文件,也可以直接作为一个数据文件,当成 data frame 直接进行读取。因为其本身就是数据文件。

下面我们以 解压 / 读取 进行详细说明:

 

1) 直接解压

R 中默认没有解压相关文件的函数,需要使用一个包:R.utils,然后如下述代码所示,利用 gunzip() 函数,即可解压。

1
2
3
library(R.utils)
gunzip( "file.gz" , remove = `TRUE`)
bunzip2( "file.bz2" , remove = `TRUE`)

注意是这个函数里面多了一个 remove = 参数,选择 TRUE 就会只保留解压后的文件,原压缩包会被删除,默认就是 TRUE

解压之后,我们可以直接用 read.table() 对其进行读取。

 

2) 直接读取

当然,如果我们的目的只是读取其中的数据,而不是一定需要解压,则可以使用两个默认函数组合的形式,直接对数据进行读取:

1
dat <- read .table(gzfile( "file.gz" )) 

而针对 2.10 版本之后的 R,还有另一种更方便的读取方式,就是直接使用 read.table() 对其进行读取。

1
dat <- read .table( "file.gz" )

推荐阅读