在R中压缩来自zip的消息

时间:2017-08-20 10:51:29

标签: r zip output

我想要压缩zipr命令输出的消息,但我找不到正确的命令。

背景,因为我在函数中使用zip函数,我不希望用户看到有关所有文件的所有信息(大约5.000,这会使控制台变得混乱)。

以下是我到目前为止所尝试的内容,但所有功能foo都显示adding: hw.txt (stored 0%)updating: hw.txt (stored 0%)

# create a small file 
writeLines("hello world", "hw.txt")
# use the original command
zip("zip.zip", "hw.txt")

# try different options of capturing/suppressing output!

# assignment
foo1 <- function() a <- zip("zip.zip", "hw.txt")
foo1()

# capture.output
foo2 <- function() a <- capture.output(zip("zip.zip", "hw.txt"))
foo2()

# suppressMessages
foo3 <- function() suppressMessages(zip("zip.zip", "hw.txt"))
foo3()

# invisible
foo4 <- function() invisible(zip("zip.zip", "hw.txt"))
foo4()

# sink
foo5 <- function() {
 sink(tempfile())
 zip("zip.zip", "hw.txt")
 sink()
}
foo5()

是否还有其他选项可以抑制zip的输出?

1 个答案:

答案 0 :(得分:5)

答案取决于使用代码的系统。在我的Windows系统上,我可以使用

zip("zip.zip", "hw.txt", flags="-q")

它会抑制消息,但这取决于系统用来处理zip文件的内容。由于消息来自zip程序,因此您必须发出信号,不要输出消息。