我在cvs文件中有空行:
CSV.table(filepath).count { |row| row.to_h.values.all?(&:blank?) }
#=> 6
我正在尝试使用CSV::Table#delete_if
删除这些内容:
CSV.table(filepath).delete_if { |row| row.to_h.values.all?(&:blank?) }
#=> #<CSV::Table mode:col_or_row row_count:6>
在这里,我希望我的csv不再包含空行,但是:
CSV.table(filepath).count { |row| row.to_h.values.all?(&:blank?) }
#=> 6
我在这里错过了一些观点吗?我检查了CSV::Table
是否有类似delete_if!
的内容,但它没有,所以假设我的工作应该有效。
答案 0 :(得分:5)
delete_if
州的文件:
此方法返回链接表。
所以你把表拿回来了,我想你应该再把它保存到某些CSV。它不会修改原始CSV文件。
您需要再次存储它:File.write('/path/new_name.csv', csv.to_s)
答案 1 :(得分:0)
CSV.table(filepath, skip_blanks: true)
导致CSV忽略空行。