前提・実現したいこと
csvを読み込み、そのデータを使用したり、
取得したデータをcsvに書き込むために練習として下記のようなプログラムを作っています。
1.csvを読み込む
2.csvを書き込む
3.書き込んだcsvを読み込む(1.2がうまくできているか見たい意図)
発生している問題・エラーメッセージ
console
1./csvtest.rb:25: syntax error, unexpected tIDENTIFIER, expecting do or '{' or '(' 2 url.zip(indexs).each |u i| do 3./csvtest.rb:29: syntax error, unexpected end, expecting end-of-input
endがおかしいと出てますが、doendの文をdoendでくくってはいけないということでしょうか?
該当のソースコード
ruby
1require "csv" 2 3url = [] 4indexs = [] 5index = 1 6 7puts "csvを読み込みます" 8CSV.foreach("url.csv") do |fg| 9 # fgはArrayクラス 10 index = index + 1 11 indexs << index 12 url << fg[0] 13end 14 15puts url 16 17sleep 5 18 19puts "csvを書き込みます" 20 21CSV.open('addurl.csv','w') do |test| 22 23 test << ["項番","URL"] 24 25# ↓該当箇所 26 url.zip(indexs).each |u i| do 27 test << [u,i] 28 end 29# ↑該当箇所 30 31end 32 33sleep 5 34 35puts "書き込んだCSVを再度読み込みます" 36 37CSV.foreach("addurl.csv") do |fg| 38 p fg 39end
試したこと
下記のサイトを参考にしてみました。
each文とzipメソッドで若干使い方が違う?
▼参考記事
【Rubyメモ】eachメソッドで複数の配列を同時にループさせる方法
該当箇所を
url.zip(indexs).each do |u i| ~省略~
** → **url.zip(indexs).each |u i| do ~省略~
こんな感じにしてみたりもしましたが、エラーは変わらずでした。
該当箇所をコメントアウトすると、エラーは出ません。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/01/15 03:29
2020/01/15 03:29