代码之家  ›  专栏  ›  技术社区  ›  Jwan622

如何编写没有标题的CSV

  •  0
  • Jwan622  · 技术社区  · 6 年前

    我有一个文件是这样的:

    milk 7,dark 0,white 0,sugar free 1
    milk 0,dark 3,white 0,sugar free 0
    milk 0,dark 3,white 0,sugar free 5
    milk 0,dark 1,white 5,sugar free 3
    

    CSV中没有标题。但是,每次我用类似的程序打开这个文件 Numbers ,如下所示:

    enter image description here

    我写的代码如下所示:

    def self.write(output_path:, data:, write_headers: false)
        CSV.open(output_path, "w", write_headers: write_headers) do |csv|
          data.each do |row|
            csv << row
          end
        end
      end
    

    write_headers 你到底做了什么?

    2 回复  |  直到 6 年前
        1
  •  1
  •   Stefan    6 年前

    这是我如何将数据写入CSV的问题还是CSV程序的问题。。。这可能是因为分隔符的选择是错误的。

    是什么 write_headers 你到底做了什么?

    它与 headers CSV.new :

    :write_headers
    什么时候? true :headers 设置时,将向输出中添加标题行。

    例子:

    require 'csv'
    
    CSV.generate(headers: %w[a b c], write_headers: true) do |csv|
      csv << [1, 2, 3]
      csv << [4, 5, 6]
    end
    #=> "a,b,c\n1,2,3\n4,5,6\n"
    

    CSV.generate(headers: %w[a b c], write_headers: false) do |csv|
      csv << [1, 2, 3]
      csv << [4, 5, 6]
    end
    #=> "1,2,3\n4,5,6\n"
    
        2
  •  0
  •   Caleb Keene    6 年前

    write_headers headers: false 在您的选项中,哈希将修复您的问题(设置为true时,它将CSV的第一行作为标题)