2012-12-04 42 views
0

我要做的是將我的所有產品ID都放在我的sampleid文本文檔中,並讓我的腳本輪流通過每個ID創建具有該ID的產品URL。我也想有id和完整的url輸出到csv文件,但我的代碼似乎只在我的文檔中生成最後一個id ...我假設它不移動到下一行的each_line doRuby with csv.open如何添加更多行?

#!/usr/bin/ruby 
# ProductID script 
puts "Enter current token" 
auth_token = gets.chomp 
File.open("sampleid.txt", "r").each_line do |line| 
productNumber = line 
    restcall = "mywebsite.com&token=" + auth_token + "&something.com/" + productNumber + "" 
require 'csv' 
CSV.open("/Users/Documents/scripts/ruby/rb_output.csv", "wb") do |csv| 
    csv << ["Product ID", "Full Call"] 
    csv << [productNumber, restcall] 
end 
end 

回答

0

您正在爲每一行新鮮打開該文件,這意味着您要爲.each_line的每次迭代重新編寫該文件。試試這個:

require 'csv' 

puts "Enter current token" 
auth_token = gets.chomp 
CSV.open("/Users/Documents/scripts/ruby/rb_output.csv", "wb") do |csv| 
    File.open("sampleid.txt", "r").each_line do |line| 
     productNumber = line 
     restcall = "mywebsite.com&token=" + auth_token + "&something.com/" + productNumber + "" 

     csv << ["Product ID", "Full Call"] 
     csv << [productNumber, restcall] 
    end 
end 
+0

謝謝,我明天就給這個鏡頭,並接受它是否有效! – Tony

+0

我很高興它爲你工作! – wmjbyatt