假设我有一个以|
作为分隔符的CSV文件。我知道如何阅读和打印内容,但我不确定如何打印Row 7 has an empty field
。显示它是哪个字段会很好,但我现在关心的是先向我显示行,然后我可以尝试执行第二个任务。
require 'csv'
require 'pp'
CSV.open("exam.txt", 'r',"|") do |row|
pp row
end
答案 0 :(得分:2)
require 'csv'
require 'pp'
i = 0
CSV.open("exam.txt", 'r',"|") do |row|
i += 1;
pp row
pp "Row " << i.to_s << " has an empty field" if row.include?(nil)
end
您可以使用row.index(nil)
之类的内容查找nil
字段。阅读Enumerable
和Array
文档,您可能会发现一些内容。
答案 1 :(得分:1)
由于CSV库包含Ruby的Enumerable模块,因此您可以使用Enumerable's each_with_index
方法。请记住,索引是从0开始的。
CSV.open("exam.txt", "r", "|").each_with_index do |row, index|
pp row
# If it's blank:
pp "Row #{index + 1} has an empty field"
end