以下是我使用过的代码。当Main.csv中“name”col的值等于Sub.csv中“name”col的值时,我无法从Main.csv中删除行。请帮我一下。我知道我错过了什么。提前致谢。
require 'rubygems'
require 'smarter_csv'
main_csv = SmarterCSV.process('Main.csv', {:chunk_size => 100}) do |chunk|
short_csv = SmarterCSV.process('Sub.csv', {:chunk_size => 100}) do |smaller_chunk|
chunk.each do |each_ch|
smaller_chunk.each do |small_each_ch|
each_ch.delete_if{|k,v| v == small_each_ch[:name]}
end
end
end
端
答案 0 :(得分:0)
这是smarter_csv
..
Sub.csv有2000行。而Main.csv有大约100万行。
如果你需要决定是否两个文件中都出现name
,那么你可以这样做:
1)首先阅读Sub.csv文件,然后将name
的值存储在数组sub_names
2)打开result.csv文件的输出文件
3)读取Main.csv文件,处理成块,
如果名称未出现在数组sub_names
4)关闭输出文件 - est voila!