我想要压缩zip
中r
命令输出的消息,但我找不到正确的命令。
背景,因为我在函数中使用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
的输出?
答案 0 :(得分:5)
答案取决于使用代码的系统。在我的Windows系统上,我可以使用
zip("zip.zip", "hw.txt", flags="-q")
它会抑制消息,但这取决于系统用来处理zip文件的内容。由于消息来自zip程序,因此您必须发出信号,不要输出消息。