我想抑制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()
Run Code Online (Sandbox Code Playgroud)
还有其他选项可以抑制输出zip吗?
答案将取决于使用该代码的系统。在Windows系统上,我可以使用
zip("zip.zip", "hw.txt", flags="-q")
Run Code Online (Sandbox Code Playgroud)
并禁止显示消息,但这取决于您的系统用于处理zip文件的方式。由于该消息来自zip程序,因此您必须发出信号以使其不输出消息。