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"]
相关推荐
玉梅小洋2 天前
Unity 2D游戏开发 Ruby‘s Adventure 2:主角和第一脚本
游戏·unity·游戏引擎·游戏程序·ruby·游戏开发
玉梅小洋4 天前
Unity 2D游戏开发 Ruby‘s Adventure 1:课程介绍和资源导入
游戏·unity·游戏引擎·游戏程序·ruby
x-cmd5 天前
[x-cmd] 告别实验阶段?Ruby 4.0 里程碑发布:Ractor 趋于稳定,性能再攀高峰
服务器·开发语言·ruby·x-cmd·ractor
龙仔7255 天前
鲲鹏ARM系统yum安装rabbitmq并附修改端口及配置,最后一键查看
分布式·rabbitmq·ruby
KYGALYX7 天前
服务异步通信
开发语言·后端·微服务·ruby
为什么不问问神奇的海螺呢丶9 天前
n9e categraf rabbitmq监控配置
分布式·rabbitmq·ruby
咩图11 天前
Sketchup软件二次开发+Ruby+VisualStudioCode
java·前端·ruby
开开心心就好12 天前
开源免费高速看图工具,支持漫画大图秒开
linux·运维·服务器·安全·ruby·symfony·1024程序员节
芒鸽12 天前
基于 lycium 适配鸿蒙版 Ruby 的解决方案
华为·ruby·harmonyos
Knight_AL13 天前
线程池满了怎么办?用 RabbitMQ 做任务补偿不丢失
分布式·rabbitmq·ruby