我的代码看起来像
CSV.open("test.csv", "a+") do |csv|
(0..array.count).each do
csv << [object1, object2, object3]
end
end
假设在迭代中的某个时刻,object1
的值为1
,object2
的值为2
而object3
的值为3
。
是否可以检查我的test.csv
文件中是否有行
1,2,3
已经存在,所以不要再将同一行附加到我的csv文件中吗?
答案 0 :(得分:2)
csv_file = 'test.csv'
existing_lines = File.readlines(csv_file).map(&:strip) # remove line breaks
CSV.open(csv_file, 'a+') do |csv|
(0..array.count).each do
data = [object1, object2, object3]
str = data.join(',')
unless existing_lines.include?(str)
csv << data
existing_lines << str
end
end
end
答案 1 :(得分:0)
这就是我的方式
existing_dates = Array.new
file = File.open(@renko_csv_path, "r")
file.each_line do |a|
fields = a.split(',')
date = fields[0].tr_s('"', '').strip
existing_dates.push(date)
end
renko_points.each do |renko_hash|
CSV.open(@renko_csv_path, (File.file?(@renko_csv_path) ? "ab" : "wb")) do |csv|
if !existing_dates.include?(renko_hash[:date])
csv << renko_hash.map { |key, value| value }
end
end
end