2016-11-09 17 views
0

Rubyでループしている間にファイルに書き込むことはできますか?アイデアはCSVが徐々にによって返されるデータとファイルを更新することです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 

:私のコードは次のようになりますナビゲータオブジェクト、launch_processメソッド。ここで

+0

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

答えて

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 

あなたはより多くのコードを投稿した場合、あなたの例には、このループを適合させることが容易になるだろう。

関連する問題