Ruby 之 csv 文件读写

csv 文件写入

ruby 复制代码
require 'csv'

title = ["col1", "col2"]
contents = [["row11", "row12"], ["row21", "row22"]]

csv1 = CSV.open("test1.csv", "wb") do |csv|
  # write file title
  csv << title

  # write file body
  contents.each do |line|
    csv << line
  end
end

puts csv1.class
puts csv1.inspect

# UTF-8编码的文件,开头会加入BOM来表明编码方式
csv2 = CSV.generate("\xEF\xBB\xBF") do |csv|
    # write file title
    csv << title

    # write file body
    contents.each do |line|
      csv << line
    end
end
File.open("test2.csv", "wb"){|f| f << csv2}

puts csv2.class
puts csv2.inspect
ruby 复制代码
Array
[["row11", "row12"], ["row21", "row22"]]
String
"col1,col2\nrow11,row12\nrow21,row22\n"

csv 文件读取

ruby 复制代码
require 'csv'

csv3 = []
CSV.open("test1.csv") do |csv|
  csv.each do |line|
    csv3 << line
  end
end

puts csv3.class
puts csv3.inspect

csv4 = []
File.open("test2.csv", "rb") do |f|
  f.each do |line|
    csv4 << line
  end
end
puts csv4.class
puts csv4.inspect
ruby 复制代码
Array
[["col1", "col2"], ["row11", "row12"], ["row21", "row22"]]
Array
["\xEF\xBB\xBFcol1,col2\n", "row11,row12\n", "row21,row22\n"]
相关推荐
程序员 小柴21 小时前
RabbitMQ的工作模式
分布式·rabbitmq·ruby
千层冷面2 天前
RabbitMQ 发送者确认机制详解
分布式·rabbitmq·ruby
ChinaRainbowSea2 天前
3. RabbitMQ 的(Hello World) 和 RabbitMQ 的(Work Queues)工作队列
java·分布式·后端·rabbitmq·ruby·java-rabbitmq
awei09164 天前
Linux系统安装RabbitMQ
linux·运维·rabbitmq·ruby
你住过的屋檐6 天前
【RabbitMQ】Linux上安装RabbitMQ详细步骤
linux·rabbitmq·ruby
不爱原创的Yoga15 天前
【中间件】Rabbit离线部署操作
开发语言·中间件·ruby
星尘安全16 天前
GitHub 发现 ruby-saml 严重漏洞,账户安全岌岌可危
网络安全·黑客·github·ruby·网络攻击
熏鱼的小迷弟Liu17 天前
【RabbitMQ】RabbitMQ中死信交换机是什么?延迟队列呢?有哪些应用场景?
分布式·rabbitmq·ruby
Tipriest_17 天前
ruby介绍【前端扫盲】
开发语言·前端·学习·ruby
多多*17 天前
言简意赅 Linux部署elasticsearch7.15.2
java·linux·运维·服务器·开发语言·jenkins·ruby