在R中使用RCurl保存从SFTP下载的.gz文件似乎被压缩了两次

时间:2019-06-07 21:34:04

标签: r sftp rcurl

当我使用R中的RCurl从办公室的本地数据库中下载包含.nc4文件的.gz文件时,该文件似乎在下载过程中或在R中使用save()函数时被压缩了。

我在使用R程序和命令提示符之间进行了比较。使用命令提示符,我可以下载.gz文件,并使用7zip将其解压缩,而不会出现问题,R中的ncdf4可以读取该文件。假设.gz文件的大小为X MB,而.nc4文件的大小为Y MB。

使用我的R脚本,下载的.gz文件的大小小于X MB,带有.gz文件扩展名。当我使用R系统命令将其解压缩为7zip时,它没有问题地解压缩了文件,但是现在它的大小为X MB,并且与上方的原始.gz文件相同(大小相同)。但是,它现在不再具有.gz文件扩展名。再次解压缩后,它的大小现在为Y MB。但是,R上的ncdf4无法读取它。

命令提示符命令:

   #While on sftp server...
   get <filename>.gz
   #The file is a proper .gz file of X MB size on my host machine
   7z.exe e <filename>.gz
   #The file is now a .nc4 file of Y MB size
   file <- nc_open(<filename>) is successful

R代码

   library("RCurl")
   url <- paste0("<sftp server>, ".gz")
   zippedFile <- paste0(<downloaded file name>, ".gz")
   data <- getBinaryURL(url, userpwd = <credentials>, connecttimeout = 60)
   save(data, file = zippedFile)
   #The file is a proper .gz file of less than X MB size on my host machine
   system("\"C:/Program Files/7-Zip/7z.exe\" e <filename>.gz", intern = T)
   #The file is now X MB size on my host machine without the .gz extension
   system("\"C:/Program Files/7-Zip/7z.exe\" e <filename>", intern = T)
   #The file is decompressed successfully into Y MB size on my host
   file <- nc_open(<filename>) fails
   #Error: Error in R_nc4_open: NetCDF: Unknown file format

我是R的新手,所以对了解R或RCurl如何压缩数据的任何帮助都会很棒!我浏览了无数来源,但没有给出答案。

0 个答案:

没有答案
相关问题