漂亮打印到ruby中的文件

cod*_*ver 23 ruby file-io pretty-print

我试图将哈希打印到文件.

我尝试了unix重定向[逐步添加不同的标志]:

`echo #{pp  mymap} | tee summary.out 2>&1`
Run Code Online (Sandbox Code Playgroud)

和文件IO

 my_file = File.new(@dir_+"/myfile.out",'w+')          
 my_file.puts `#{pp get_submap_from_final(all_mapping_file,final_map)}`
Run Code Online (Sandbox Code Playgroud)

它总是打印到控制台并且不写入文件.

还有一种更简单的方法可以在ruby中的一行中写入文件吗?而不是做File.new然后写入文件?

Huy*_* Le 50

require 'pp'

File.open("test.txt","w") do |f|
  PP.pp(self,f)
end
Run Code Online (Sandbox Code Playgroud)

  • 只是为了澄清,在上面的例子中,"self"的值将被写入文件.如果你想写别的东西.它将是PP.pp('将此写入文件',f) (9认同)

tad*_*man 2

这里反引号的使用令人困惑,因为它们用于执行 shell 命令。

你的意思可能是:

File.open(@dir_+"/myfile.out",'w+') do |f|
  f.write(pp(get_submap_from_final(all_mapping_file,final_map)))
end
Run Code Online (Sandbox Code Playgroud)

pp方法始终写入控制台,因此您可能会看到它并且仍然会写入它。