2016-11-09 40 views
0

在Ruby中循環時可以寫入文件嗎?我的代碼看起來是這樣的:Ruby - 在類中迭代時寫入文件

navigator.rb

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

app.rb#發射

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

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

的想法是更新CSV與正在逐漸被返回的數據文件Navigator對象,launch_process方法。

+0

'CSV.open('output.csv','w')do | csv | var.each do | result | csv <<結果 結束 結束 –

回答

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 

如果您發佈更多的代碼會更容易適應這個循環,你的榜樣。