【问题标题】:Extracting gzip files over the network [duplicate]通过网络提取 gzip 文件 [重复]
【发布时间】:2013-04-17 09:50:09
【问题描述】:

我在 Windows 7 上使用 R.2.15.2,我无法解压缩存储在网络上的 .gz 文件。 我也在使用gnuwin32(如果有帮助的话)

看到文件了,所以位置没问题

system("ls")
file1.bla.gz
file2.bla.gz
file3.bla.gz
...

R) unzip("./file1.bla.gz")
Message d'avis :
In unzip("./file1.bla.gz") :
erreur 1 lors de l'extraction d'un fichier zip

R) untar("./file1.bla.gz")
/usr/bin/tar: This does not look like a tar archive
/usr/bin/tar: Skipping to next header

使用函数unzip 也不行,看起来它只处理.zip 文件。不确定问题出在网络上还是我错误地调用它...

如何提取此文件?

编辑:以下有效

system(" \"C:\\Program Files\\7-Zip\\7z.exe\" e -y file1.bla.gz")

感谢@Paul Hiemstra,来自R.utilsgunzip 更好

【问题讨论】:

  • 定义“不工作”。该特定文件/文件夹的读/写选项是什么?
  • 您是否尝试过使用gzfile
  • @RomanLuštrik: 不工作 == 我找不到在 R James 中解压缩文件的方法:我刚试过,gzfile("the gz file name") 没有成功
  • 没有成功?!我们如何才能在没有错误消息和代码的情况下提供帮助?请张贴这些
  • 我会避免直接调用7zip,这会降低代码的可移植性。请参阅我使用gzfile 打开 gzip 压缩文件的更新答案。

标签: windows r unzip gunzip


【解决方案1】:

您可以使用gzfile 访问gzip 压缩文件的内容,例如:

read.table(gzfile("/tmp/foo.csv.gz")) 

foo.csv.gz 是一个 gzip 压缩的 csv 文件。我在this post 中得到了@DirkEddelbuettel 的答案。

如果您的目标是提取文件,您可以使用R.utils 包中的gunzip 函数。请参阅thisR-help 帖子。

【讨论】:

  • 好吧,我认为它有效,但不是,所以这是.tar档案而不是.gz
  • tar 还支持提取gzip 档案,因为它们经常串联使用。 tar 创建包含所有文件的单个文件,gzip 添加压缩。
  • 我不这么认为,如果tar.gz 不是我的情况,您所指的链接需要untar。我进行了编辑以向您显示失败消息
  • 您可以使用gzfile 访问gzip 压缩文件,请参阅我的更新答案。
猜你喜欢
  • 1970-01-01
  • 2014-07-16
  • 1970-01-01
  • 1970-01-01
  • 2017-08-14
  • 2012-06-05
  • 1970-01-01
  • 2017-03-18
  • 1970-01-01
相关资源
最近更新 更多