【发布时间】:2019-07-30 12:05:24
【问题描述】:
我有两个标题相同的 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
如何扩展此功能以允许返回缺失的行?
【问题讨论】:
-
如果您只是想要
file1.csv中不存在于file2.csv中的行,您可以使用IO#readlines:IO.readlines('file2.csv', chomp: true) - IO.readlines('file1.csv', chomp: true) #=> ["Joe,Smith,Dallas,TX"](即,不需要CSV 方法)。