在R中抑制zip命令的消息

7
我希望能够抑制rzip命令输出的信息,但我没有找到正确的命令来实现这一点。背景是,我在函数中使用zip函数,我不想让用户看到所有文件的信息(大约5000个),因为这会使控制台混乱。到目前为止,我尝试了以下所有函数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的输出吗?


使用的是什么编程语言? - user2261597
我使用R(我更新了问题以使其更明显) - David
确实如此,这就是我找到上述5种方法的地方。但它们似乎不能与zip一起使用。 - David
1个回答

15

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

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

它可以抑制信息,但这取决于您的系统使用什么来处理zip文件。由于消息来自zip程序,因此您必须发出信号以使其不输出消息。


1
太棒了,它完成了任务!我使用Ubuntu,它运行得非常好。 - David
2
在MacOS上 - moodymudskipper

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接