ruby按列读取csv文件
时间: 2024-11-05 15:10:24 浏览: 8
extract_ticket_numbers:用于读取 CSV 文件的 CLI,从每一行中提取 Jira 票号并将其添加为附加列
在Ruby中,如果你希望按列而不是按行读取CSV文件,CSV库本身默认是以行的形式返回数据的,但它并没有直接提供按列操作的功能。不过,你可以通过一些间接的方式来实现这个需求。以下是一种常见的做法:
1. 首先,你需要创建一个哈希表来保存每一列的数据,遍历整个CSV文件时,对于每一行,将数据添加到对应的哈希键上:
```ruby
require 'csv'
def read_csv_columns(filename, headers)
header_data = {}
CSV.foreach(filename, headers: true) do |row|
headers.each_with_index do |header, index|
if !header_data.has_key?(header)
header_data[header] = []
end
header_data[header] << row[index]
end
end
header_data
end
# 使用方法:
headers = CSV.read('your_file.csv', headers: true).first
column_data = read_csv_columns('your_file.csv', headers)
# 现在column_data是一个哈希表,例如:{'Column1': ['Value1', 'Value2'], 'Column2': ...}
```
2. 要获取特定列的数据,只需从`column_data`哈希中提取相应的值即可:
```ruby
values_of_interest = column_data['YourColumnHeader']
```
阅读全文