簡體   English   中英

Ruby - 從csv文件中刪除列並轉換為管道分隔的txt文件

[英]Ruby - remove columns from csv file and convert to pipe delimited txt file

我正在嘗試獲取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

有一個更好的方法嗎? 任何幫助表示贊賞。

嘗試這個:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM