MST
星途 面试题库

面试题:Ruby 中 CSV 文件读取与特定列提取

假设你有一个 CSV 文件,每行数据包含姓名、年龄、性别三列。请用 Ruby 编写代码读取该 CSV 文件,并提取出所有年龄列的数据,以数组形式返回。要求处理文件可能不存在以及格式错误的情况。
50.0万 热度难度
编程语言Ruby

知识考点

AI 面试

面试题答案

一键面试
require 'csv'

def extract_ages(file_path)
  begin
    ages = []
    CSV.foreach(file_path, headers: true) do |row|
      age = row['年龄']&.to_i
      ages << age if age
    end
    ages
  rescue Errno::ENOENT
    []
  rescue CSV::MalformedCSVError
    []
  end
end

你可以使用以下方式调用这个方法:

file_path = 'your_file.csv'
ages_array = extract_ages(file_path)
puts ages_array.inspect