私がやりたいことは、各行に何個の@があるかを数え、最後にこの値を合計フィールドに入れることです。すべての行をカウントし、CSVの各行の末尾に追加する
これは、作品の種類を意味しますが、それはそれがカウントする最後の行の値を追加するだけです。
マイCSV
Header,Header,Header
[email protected],Info,Info
Info,[email protected]@,Info
Info,Info,[email protected]@@
マイコード
require "csv"
table = CSV.read("my_test.csv", {
headers: true,
col_sep: ","
})
File.readlines('my_test.csv').each do |line|
table.each do |row|
at_count = line.count('@')
row["Total"] = at_count
end
end
CSV.open("my_test.csv", "w") do |f|
f << table.headers
table.each { | row | f << row }
end
現在の結果
Header,Header,Header,Total
[email protected],Info,Info,3
Info,[email protected]@,Info,3
Info,Info,[email protected]@@,3
Rubyでは、ハッシュが最後の引数である場合、ハッシュに '{}} 'のカッコを省略することができます。コード内の混乱の量を減らします。 – tadman