當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。