我正在制作一个小程序来为一个类渲染一些二叉树的图像。我希望程序自动为我制作一堆.dot和.png文件,但除非我手动调用它,否则渲染.png的行无效。故障代码:
@file_num = 0
data.each do |x|
@tree.add(x)
draw_frame(@tree, @filename, @file_num)
@file_num += 1
end
(0...(data.length)).each do |x|
`dot -Tpng #{@filename}#{x}.dot > #{x}.png`
end
当我走树时,它会生成.dot文件(使用并条方法,我最终会从文件中创建一个.gif文件)。在这里,使用反引号调用dot...
应该是png,但事实并非如此。但是,如果我在命令行中运行完全相同的代码,它可以正常工作。有什么想法吗?
答案 0 :(得分:0)
请尝试以下方法:
`dot -Tpng #{@filename}#{x}.dot -o#{x}.png`
这将stdout piping命令>
替换为一个简单的参数,以告诉它自己编写文件。
答案 1 :(得分:0)
您可能需要考虑使用ruby-graphviz gem。