ruby - Ruby CSV 比较两个 CSV 文件
问题描述
我有两个具有相同标题的 CSV 文件。我想比较这些文件并返回第二个文件中缺少的条目。这是一个例子:
文件 1.csv
fname,lname,city,state
Joe,Smith,Dallas,TX
Jane,Done,Baltimore,MD
Frank,Jones,Plano,TX
文件2.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 中丢失的行数组
csv1 = CSV.read("file1.csv")
csv2 = CSV.read("file2.csv")
csv1 - csv2
推荐阅读
- arrays - 循环遍历数组数值
- asp.net - 使用实体框架创建具有多个查询的 MVC ViewModel
- node.js - npm install 给出警告,npm audit fix 不起作用
- python - Python新手,我的代码有什么问题?如何让游戏存储金币值,并开始新的迭代直到用户退出?
- python - 如何在特定驱动器的所有子目录中创建文件?
- android - 从一个活动到另一个活动并回到上一个活动后如何保留价值?
- java - Maven:编译时将可执行文件(.exe)移动到目标文件夹中
- java - 如何让 itemWriter 创建文件?
- visual-studio-extensions - VSIX - 如何在包中包含 XML 文档文件?
- python - 根据第一个列表的最大顺序对多个列表进行排序