使用Ruby更改csv文件的格式

时间:2015-09-30 10:25:56

标签: ruby csv

我做了一些研究,但找不到更好的解决方案来更改csv文件的格式。 我想将csv文件的行转换为列,并将列转换为行。

例如:

原始csv文件:

a,b,c,d,e,f,g
1,2,3,4,5,6,7
7,6,5,6,4,2,1

我想将上述文件转换为

a,1,7
b,2,6
c,3,5
d,4,4
e,5,3
f,6,2
g,7,1

有没有更简单的解决方案?

1 个答案:

答案 0 :(得分:1)

所以你想转置这个数据

transposed = CSV.read("path/to/file.csv").transpose

CSV.open("path/to/file.csv", "w") do |csv|
  transposed.each do |row|
    csv << row
  end
end
  1. 阅读数据
  2. 转置它 - Ruby 1.9.3应该知道#transpose
  3. 将其写回来
  4. 如果您的csv不是太大而无法立即阅读,那么这很简单。

    如果是的话,那就变得非常恐怖。如果是这种情况,请参阅this question的答案。