如何解析CSV文件的第一行?我想确保文件中提供了所有相应的列,但不想处理整个文件。
答案 0 :(得分:19)
更好的方法是在Enumerable中使用内置的Ruby's Standard Library CSV parser支持:
headers = CSV.open('file.csv', 'r') { |csv| csv.first }
该块将导致文件自动关闭,并且调用将返回已解析标头的数组。
答案 1 :(得分:2)
我想出来并希望它可以帮助别人:
# Return true if the headers match on file1 and file2
def compare_csv_files(file1, file2)
file1_first_line = CSV.parse File.open(file1) {|f| f.readline}
file2_first_line = CSV.parse File.open(file2) {|f| f.readline}
return file1_first_line == file2_first_line
end
答案 2 :(得分:0)
在您的计算机上给出一个文件“foo.csv”:
# Return true if the headers match on file1 and file2
def compare_csv_files(file1, file2)
CSV.parse( File.open(file1).first ) == CSV.parse( File.open(file2).first )
end