Ruby - 在类中迭代时写入文件

时间:2016-11-09 09:25:28

标签: ruby

在Ruby中循环时是否可以写入文件?我的代码看起来像这样:

navigator.rb

def launch_process
  while obj.present?
    return something while something_else
  end
end

app.rb #launcher

navigator = Navigator.new(args)
var = navigator.launch_process

$file = File.open("output.csv", "a+")
open($file, 'a+') { |file| file.write(var) } # won't work

我们的想法是使用Navigator Object,launch_process方法逐步返回的数据更新CSV文件。

1 个答案:

答案 0 :(得分:0)

以下是一个例子:

def launch_process(io)
  10.times do |i|
    sleep 1
    io.puts i
    ## Uncomment this line if you want to update the file during every iteration
    # io.flush
  end
end

f = File.open('output.csv','a+')
launch_process(f)
f.close

如果您发布更多代码,则可以更容易地将此​​循环调整为您的示例。