簡體   English   中英

如何從ruby中的csv文件中刪除分隔符

[英]How to remove the delimiters from a csv file in ruby

我正在讀取一個文件,該文件由“制表符空格”或“分號(;)”或“逗號(,)”分隔,代碼僅分隔制表符空格,但我希望檢查所有3。 就像文件以逗號分隔一樣,它也適用於那個。 請幫忙!

#!/usr/bin/ruby

require 'csv'

test = CSV.read('test.csv', headers:true, :col_sep => "\t") 
x = test.headers
puts x

它看起來像:col_sep不能是Regexp,它可以解決你的問題。

一種可能的解決方案是分析CSV文件的頭部並計算可能的分隔符的出現次數:

require 'csv'

possible_separators = ["\t", ';', ',']
lines_to_analyze = 1

File.open('test.csv') do |csv|
  head = csv.first(lines_to_analyze).join
  @col_sep = possible_separators.max_by { |sep| head.count(sep) }
end

@col_sep
#=> ";"

然后你可以使用:

test = CSV.read('test.csv', headers:true, :col_sep => @col_sep) 
x = test.headers
puts x
# a
# b
# c

x的值不包含任何分隔符。

暫無
暫無

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

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