Ruby 之 csv 文件读写

这篇具有很好参考价值的文章主要介绍了Ruby 之 csv 文件读写。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

csv 文件写入

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
Array
[["row11", "row12"], ["row21", "row22"]]
String
"col1,col2\nrow11,row12\nrow21,row22\n"

csv 文件读取

test.csv文章来源地址https://www.toymoban.com/news/detail-723257.html

col1,col2
row11,row12
row21,row22

按行读取 

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
Array
[["col1", "col2"], ["row11", "row12"], ["row21", "row22"]]
Array
["\xEF\xBB\xBFcol1,col2\n", "row11,row12\n", "row21,row22\n"]

以键值对形式读取

require 'csv'

rows = CSV.read("test.csv", headers:true)
title = rows.headers
contents = []
rows.each do |row|
  contents << row.to_h
end
puts title.inspect
puts contents.inspect

puts
rows = CSV.parse("col1,col2\nrow11,row12\nrow21,row22", headers:true)
title = rows.headers
contents = []
rows.each do |row|
  contents << row.to_h
end
puts title.inspect
puts contents.inspect
["col1", "col2"]
[{"col1"=>"row11", "col2"=>"row12"}, {"col1"=>"row21", "col2"=>"row22"}]

["col1", "col2"]
[{"col1"=>"row11", "col2"=>"row12"}, {"col1"=>"row21", "col2"=>"row22"}]

到了这里,关于Ruby 之 csv 文件读写的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 时间老去,Ruby不死,Ruby语言基础入门教程之Ruby3全平台开发环境搭建EP00

    如果说电子游戏是第九艺术,那么,编程技术则配得上第十艺术的雅称。艺术发展的普遍规律就是要给与人们对于艺术作品的更高层感受,而Matz的Ruby语言则正是这样一件艺术品。 无论是语法还是理念,都让Ruby开发者感受到款待,如此,Ruby代码就像活了过来,它们时而高声

    2024年01月20日
    浏览(58)
  • Ruby 趣学笔记(一)

    本文写于 2020 年 5 月 6 日 Ruby 趣学笔记(一) 变量 变量声明 变量类型 常量 输出 字符串 字符串操作 Array 数组的遍历 数组的连接 怎么判断该变量是否是数组 函数 普通函数 传参的函数 解包参数 部分参数解包 参数的默认值 传入一个散列 class class 下面有啥方法? 如何判断这

    2024年01月20日
    浏览(40)
  • CentOS安装Ruby环境

    https://github.com/rbenv/rbenv 重启bash后继续执行: Ruby安装位置: ~/.rbenv/versions/RUBY_VERSION/

    2024年02月07日
    浏览(37)
  • Ruby实战手册(1)

    目录 关于 Ruby rbenv rbenv是类Unix系统上Ruby编程语言的版本管理工具 使用程序包管理器 安装ruby 安装gems 卸载Ruby版本 设置path 安装rails 集成字符串 注释与变量内插 字典HASH 数组 times迭代 想知道 Ruby 为什么会如此受欢迎吗?在粉丝眼中,Ruby 是一门优美而巧妙的语言,他们还认为

    2024年02月14日
    浏览(31)
  • Windows下安装ruby

    从官网下载安装包,下载地址:https://www.ruby-lang.org/zh_cn/downloads/ 可以下载源码编译进行安装,也可以下载相应的安装工具进行安装。博主下载的是windows平台下的ruby2.7.2(x64)+devkit的版本,可以同时安装ruby和devkit,非常的方便。 打开安装包,点击Next选项: 选择安装路径,其他

    2024年01月20日
    浏览(38)
  • CentOS 安装 Ruby

    依次执行 wget https://cache.ruby-lang.org/pub/ruby/3.3/ruby-3.3.0.tar.gz tar -zxvf ruby-3.3.0.tar.gz cd ruby-3.3.0 ./configure make make install ruby -v

    2024年01月24日
    浏览(38)
  • Ruby语言基础知识

    Ruby是一种简单快捷的面向对象脚本语言,由日本人松本行弘(Yukihiro Matsumoto)在20世纪90年代开发,遵守GPL协议和Ruby License。它的灵感和特性来自于Perl、Smalltalk、Eiffel、Ada以及Lisp语言。 以下是Ruby语言的一些特点: 面向对象:在Ruby中,一切皆是对象。这意味着所有的数据和

    2024年02月07日
    浏览(34)
  • ruby注释

    在Ruby中,可以使用以下两种方式进行注释: 1. 单行注释:使用井号(#)在代码行的开头添加注释。例如: 2. 多行注释:使用=begin和=end将多行注释括起来。例如:   注意,注释只是用于代码的解释和说明,不会被编译或执行。它们对于提高代码的可读性和可维护性非常有用

    2024年02月12日
    浏览(30)
  • 当 Tubi 遇到 Ruby

    有人说 Tubi 作为 RubyConf China 金牌赞助商,明明用极具吸引力的 Elixir 后端工程师岗位和高品质的 Elixir Meetup,“拐走了”一批又一批 Rubyist 投身于 Elixir 开发中,却依然让人想在 Tubi 展台前多停留一会儿。 为什么工程师、校友甚至 Ruby 社区颇具影响力的人物都愿意来为 Tubi 站

    2024年02月11日
    浏览(34)
  • Ruby模块和程序组织

    和类一样,模块是一组方法和常量的集合。 和类不同,模块没有实例,取而代之的是可以将特殊模块的功能添加到一个类或者指定对象之中。 Class类是Module类的一个子类,因此每一个类对象也是一个模块对象 编写一个模块和编写类差不多,只是用module在定义开始的位

    2024年02月07日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包