📝

RubyでCSVファイルの行を削除する

2022/03/09に公開

想定されるCSVファイル

id title content
1 a America
2 b Brazil
3 c China
csv.csv
1,a,America
2,b,Brazil
3,c,China

CSVファイルから、特定のidを持つ行を削除する

require 'csv'

# csvファイルを読み出して配列の配列にする
arrays = CSV.read('csv.csv') 

# 特定のidを持つ配列を削除する
arrays.delete_if{ |array| array[0] == id } 

# 特定のidを持つ配列を削除した配列の配列をcsvに書き込む
CSV.open('csv.csv', 'w') do |csv|
  arrays.each do |array|
    csv << array
  end
end

Discussion