Ruby CSV比较两个CSV文件

时间:2019-07-30 12:05:24

标签: ruby csv

我有两个具有相同标题的CSV文件。我想比较这些文件并返回第二个文件中缺少的条目。这是一个示例:

file1.csv

fname,lname,city,state
Joe,Smith,Dallas,TX
Jane,Done,Baltimore,MD
Frank,Jones,Plano,TX

file2.csv

fname,lname,city,state
Joe,Smith,Dallas,TX
Jane,Done,Baltimore,MD

这是我的代码:

# Returns True if a match is found
# and False if none is found
def find_in_csv(csv_text,search_column,search_string)
  csv_text.find {|row|
    return row[search_column] == search_string
  }
end

如何扩展此功能以允许返回丢失的行?

1 个答案:

答案 0 :(得分:2)

这将返回在file1.csv中存在但在file2.csv中缺失的行的数组

csv1 = CSV.read("file1.csv")
csv2 = CSV.read("file2.csv")

csv1 - csv2