面试题答案
一键面试require 'csv'
input_file = 'input.csv'
output_file = 'output.csv'
data = []
CSV.foreach(input_file, headers: true) do |row|
total_amount = row['price'].to_f * row['quantity'].to_i
new_row = row.to_h
new_row['total_amount'] = total_amount
data << new_row
end
CSV.open(output_file, 'w') do |csv|
csv << data.first.keys
data.each do |row|
escaped_row = row.map do |key, value|
if value.is_a?(String)
CSV.generate_line([value]).chomp
else
value
end
end
csv << escaped_row
end
end