当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


R gzcon 通过连接(解)压缩 I/O


R语言 gzcon 位于 base 包(package)。

说明

gzcon 提供了一个修改后的连接,该连接包装现有连接,并通过该连接解压缩读取或压缩写入。假定标准 gzip 标头。

用法

gzcon(con, level = 6, allowNonCompressed = TRUE, text = FALSE)

参数

con

一个连接。

level

0到9之间的整数,写入时的压缩级别。

allowNonCompressed

合乎逻辑的。读取时是否允许非压缩输入?

text

合乎逻辑的。连接应该是text-oriented吗?这与连接模式不同(必须始终是二进制)。如果 TRUEpushBack 在连接上有效,否则 readBin 和朋友申请。

细节

如果con 打开,则打开修改后的连接。关闭包装器连接也会关闭底层连接。

如果 allowNonCompressed 为 true,则从不提供 gzip 魔术头的连接中读取数据相当于从原始连接中读取数据,否则会出现错误。

压缩输出将包含嵌入的 NUL 字节,因此 con 不允许是用 open = "w" 打开的 textConnection 。使用可写的rawConnection将数据压缩到变量中。

原始连接变得不可用:指向它的任何对象现在都将引用修改后的连接。因此,需要显式关闭新连接。

继承自类 "connection" 的对象。这与提供的连接编号相同,但内部结构有所修改。它有二进制模式。

例子

## Uncompress a data file from a URL
z <- gzcon(url("https://www.stats.ox.ac.uk/pub/datasets/csb/ch12.dat.gz"))
# read.table can only read from a text-mode connection.
raw <- textConnection(readLines(z))
close(z)
dat <- read.table(raw)
close(raw)
dat[1:4, ]


## gzfile and gzcon can inter-work.
## Of course here one would use gzfile, but file() can be replaced by
## any other connection generator.
zzfil <- tempfile(fileext = ".gz")
zz <- gzfile(zzfil, "w")
cat("TITLE extra line", "2 3 5 7", "", "11 13 17", file = zz, sep = "\n")
close(zz)
readLines(zz <- gzcon(file(zzfil, "rb")))
close(zz)
unlink(zzfil)


zzfil2 <- tempfile(fileext = ".gz")
zz <- gzcon(file(zzfil2, "wb"))
cat("TITLE extra line", "2 3 5 7", "", "11 13 17", file = zz, sep = "\n")
close(zz)
readLines(zz <- gzfile(zzfil2))
close(zz)
unlink(zzfil2)

也可以看看

gzfile

相关用法


注:本文由纯净天空筛选整理自R-devel大神的英文原创作品 (De)compress I/O Through Connections。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。