在R中,capture.output()
可以将表达式中的输出捕获到stdout
作为字符向量,例如
> x = capture.output(print(1:10))
> x
[1] " [1] 1 2 3 4 5 6 7 8 9 10"
朱莉娅有同等的功能吗?
答案 0 :(得分:5)
使用Julia 0.2,现在有一种捕获标准输出的方法:您可以调用redirect_stdout将STDOUT
转换为可以读取的管道。
这主要用于捕获外部C库的输出。正如Stefan所提到的,大多数Julia I / O函数接受一个io
参数,允许您打印到任意目的地,例如字符串缓冲区。
答案 1 :(得分:4)
标准库函数应该都接受一个可选的IO类型的第一个参数,如果提供的话将打印到该参数,否则默认为STDOUT。在这种情况下,您可以使用sprint(io->f(io,...))
来捕获打印到字符串的内容。如果函数没有写入打印到给定的IO对象,那么就没有办法重定向输出。
答案 2 :(得分:3)
不确定您的目标是什么,但如果您尝试将knitr
带到julia
,那就太棒了!
Gadfly包装有编织,可以做到这一点。
查看https://github.com/dcjones/Gadfly.jl/blob/master/src/weave.jl#L19
和
https://github.com/dcjones/Gadfly.jl/blob/master/src/weave.jl#L423
我一直在https://github.com/jverzani/Weave.jl中使用它来从降价处进行自我评分测验。