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日
    浏览(56)
  • Ruby使用类组织对象

    使用Object.new创建新对象,但是一次只使用一种方法,这是感受以对象为中心的Ruby编程的最佳方式之一。不过这种方式并不能很好地扩展,假如有一个正在运行地在线售票网站,然后其数据库必须处理数以百计地售票记录,那么可以在Ruby程序中寻找另外地一种方式去创建和操

    2024年02月07日
    浏览(35)
  • Ruby和面向对象技术

    Ruby和许多极为流行的编程语言都是面向对象的。多数的面向对象编程语言,每个对象都是一个样例或者既定类的实例以及独立对象的行为。 创建一个通用对象 定义通用对象的行为 定义带参数的方法 任何方法的返回值与方法执行中最后一个表达式的计算值相等 Ruby提供了一个

    2024年02月07日
    浏览(32)
  • 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)
  • macOS - 安装 ruby

    macOS 使用交流 QQ 群:658095824,V : ez-code ruby 官网:https://www.ruby-lang.org/zh_cn/ 支持多种语言,包括简体中文 ruby 官方安装:https://www.ruby-lang.org/en/documentation/installation/#homebrew 官方提示为: 关于brew,可参考:macOS 工具 - Homebrew https://blog.csdn.net/lovechris00/article/details/121613647 brew 安装

    2024年02月09日
    浏览(45)
  • 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)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包