1

我正在尝试获取一个 CSV 文件,删除几列,然后输出一个以管道分隔的文本文件。

这是我的代码,几乎可以工作。唯一的问题是该CSV.generate块是在整个内容周围添加双引号,以及在换行符所在的位置周围添加双引号的随机逗号。

require 'csv'

original = CSV.read('original.csv', { headers: true, return_headers: true })

original.delete('Column header 1')
original.delete('Column header 2')
original.delete('Column header 3')

csv_string = CSV.generate do |csv|
  csv << original
end

pipe_string = csv_string.tr(",","|")

File.open('output.txt', 'w+') do |f|
  f.write(pipe_string)
end

有一个更好的方法吗?任何帮助表示赞赏。

4

1 回答 1

4

Try this:

require 'csv'

original = CSV.read('original.csv', { headers: true, return_headers: true })

original.delete('Column header 1')
original.delete('Column header 2')
original.delete('Column header 3')

CSV.open('output.txt', 'w', col_sep: '|') do |csv|
  original.each do |row|
    csv << row
  end
end
于 2012-12-24T05:34:26.210 回答