在R中压缩来自zip的消息

Dav*_*vid 6 zip r output

我想抑制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吗?

G5W*_*G5W 6

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

zip("zip.zip", "hw.txt", flags="-q")
Run Code Online (Sandbox Code Playgroud)

并禁止显示消息,但这取决于您的系统用于处理zip文件的方式。由于该消息来自zip程序,因此您必须发出信号以使其不输出消息。

  • 在 MacOS 上也是如此 (2认同)