如何确定gz文件的大小或在R中原始读取它?
如何确定gz文件的大小或在R中读取原始文件?
问题的原因是希望确定gz文件的大小或在R中读取原始文件。解决方法是使用以下代码:
gz_size <- function(path) { path <- path.expand(path) f <- file(path, open="rb", raw=TRUE) seek(f, -4L, "end", "read") ret <- readBin(f, "integer", 1) close(f) return(ret) }
这段代码定义了一个名为`gz_size`的函数,它接受一个路径作为参数,并返回gz文件的大小。
首先,我们使用`path.expand`函数将路径扩展为绝对路径。然后,我们使用`file`函数打开文件,参数`open="rb"`表示以二进制模式读取文件,`raw=TRUE`表示读取原始数据而不是字符数据。
接下来,我们使用`seek`函数将文件指针移动到文件末尾的倒数第4个字节处。这是因为gz文件的最后4个字节存储了未压缩文件的大小。
然后,我们使用`readBin`函数读取文件中的一个整数值,该整数值表示未压缩文件的大小。
最后,我们使用`close`函数关闭文件,并返回读取的未压缩文件大小。
通过使用这个函数,我们可以确定gz文件的大小或在R中读取原始文件。这对于处理gz文件非常有用。