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"]
相关推荐
qq_297574679 小时前
第十三篇:RabbitMQ限流与熔断——保护系统稳定性
分布式·rabbitmq·ruby
qq_297574671 天前
第十四篇:RabbitMQ监控与日志分析——快速排查线上问题
分布式·rabbitmq·ruby
阿萨德528号1 天前
Windows RabbitMQ 启动完整指南(附启动报错解决、如何以服务方式后台运行)
windows·rabbitmq·ruby
StackNoOverflow1 天前
RabbitMQ 入门详解(含安装 + 配置 + 管理后台)
开发语言·后端·ruby
逆境不可逃5 天前
黑马 RabbitMq 基础篇 学习记录
学习·rabbitmq·ruby
星梦清河7 天前
微服务-MQ高级
微服务·架构·ruby
wangbing11259 天前
踩坑:el8应用装在el9上
开发语言·后端·ruby
Albert Edison12 天前
【RabbitMQ】发布确认模式(使用案例)
分布式·rabbitmq·ruby
Dontla14 天前
aio-pika介绍(基于asyncio的Python异步消息队列客户端,用于操作RabbitMQ,并实现对AMQP协议支持)
python·rabbitmq·ruby
逆境不可逃19 天前
一篇速通RabbitMQ (从入门到生产实战:核心原理、高级特性与 Spring Boot 集成全解)
开发语言·后端·ruby