ruby 操作csv
1.读取csv
- 文件中读取:一次读入全部(设置headers使  CSV#shift()  以CSV::Row对象返回而不是数组;使  CSV#read()  返回 CSV::Table 对象而不是数组)
CSV.read('test.csv') #=> Array#headers默认为false,如果设置为true,csv的第一行将被视为标题 
 CSV.read('test.csv', headers:true) #=> CSV::Table #headers设置为数组,这个数组将被作为标题
 CSV.read('test.csv', headers:[1,2,3,4,5]) #headers设置为字符串,这个字符串内容将被作为标题
 CSV.read('test.csv', headers:"1,2,3,4,5")
- 文件中读取:一次读入一行
#由于headers配置,返回类型发生变化(这个方法默认为第一行是标题,不会进行返回) 
 CSV.foreach 'test.csv' do |row|
 puts row.class #=> Array
 end CSV.foreach('test.csv', headers:true) do |row|
 puts row.class #=> CSV::Row
 end #return_headers:true 返回标题
 CSV.foreach('test.csv', return_headers:true) do |row|
 p row #=> 返回Array
 end
- 字符串中读取:一次读取一行
CSV.parse("CSV,data,String") do |row|
 # use row here...
 end
- 字符串中读取:全部读取
CSV.parse("CSV,data,String") #[]方法需要返回的类型为CSV::ROW;所以设置参数headers:true
 content = File.read('data.csv')
 csv = CSV.parse(content, headers:true)
 sum = 0
 csv.each do |row|
 sum += row['id'].to_i
 end
 puts sum
2.写入csv
- 写入文件
CSV.open("path/to/file.csv", "wb") do |csv|
 csv << ["row", "of", "CSV", "data"]
 csv << ["another", "row"]
 # ...
 end
- 写入字符串
csv_string = CSV.generate do |csv| 
 csv << ["row", "of", "CSV", "data"]
 csv << ["another", "row"]
 # ...
 end
 #=> "row,of,CSV,data\nanother,row\n"
3.单行相互转换
- csv_string = ["CSV", "data"].to_csv #=> "CSV,data\n" 
 csv_array = "CSV,String".parse_csv #=> ["CSV", "String"]
ruby 操作csv的更多相关文章
- python操作csv和excel文件
		1.操作csv文件 1).读取文件 import csv f=open("test.csv",'r') t_text=csv.reader(f) for t,i in t_text ... 
- C#操作CSV存取类
		using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.D ... 
- 用javacsv API 来操作csv文件
		javacsv是国外开发的一个比较好的操作csv文件的API,这里简单讲一下用法. 先下载javacsv2.0.zip的文件,解压后,把javacsv.jar 添加到项目中. 本站下载地址: htt ... 
- C#操作.csv文件Demo
		1.使用OleDB操作.csv文件,比较费时 public static DataTable GetDataTableFromCsv(string path,bool isFirstRowHeader ... 
- java操作csv文件之javacsv.jar应用
		csv文件是分隔文件,如果使用java的io流来写,比较麻烦,这里为大家提供一个javacsv的jar包,这个很方便操作csv文件. 下载地址:https://pan.baidu.com/s/1i46 ... 
- 使用 WeihanLi.Npoi 操作 CSV
		使用 WeihanLi.Npoi 操作 CSV Intro 最近发现 csv 文件在很多情况下都在使用,而且经过大致了解,csv 格式简单,相比 excel 文件要小很多,读取也很是方便,而且也很通用 ... 
- java 操作 csv文件
		CSV是逗号分隔文件(Comma Separated Values)的首字母英文缩写,是一种用来存储数据的纯文本格式,通常用于电子表格或数据库软件.在 CSV文件中,数据“栏”以逗号分隔,可允许程序通 ... 
- Python 操作csv和excel表格
		1. 操作csv表格 使用的库 csv 1. csv文件里读取数据 代码 1. 以列表形式打开 import csv f = open('csv_test.csv', 'r') # 打开csv文件 c ... 
- python中操作csv文件
		python中操作csv文件 读取csv improt csv f = csv.reader(open("文件路径","r")) for i in f: pri ... 
随机推荐
- awk使用实例一则
			$META_DB -N -e "use web_boss_rainbow; select iDsId, sDbname, sHost, sPort, sNameServiceKey,sDri ... 
- 调试一个Ext打开的window窗口内嵌Iframe的form提交问题
			一个奇怪的问题是:潜逃在iframe里的页面单独提交都是正常,放到iframe里面通过js调用在parent页面.提交总是被莫名其妙的杀掉. 确定js简单无错之后,继续看parent的处理逻辑,有这么 ... 
- February 25 2017 Week 8 Saturday
			Energy and persistence can conquer all things. 能量和毅力可以征服一切. I have the persistence, but it seems I a ... 
- OpenGL中的数据——Buffer
			OpenGL中主要包括了两种数据——Buffer和Texture. Buffer用于储存线性数无类型据块,可以看成普通的内存块,而Texture则用于储存多维数据,一般储存图像或者其他数据. Buff ... 
- 让免费版MarkdownPad2使用Pro版本的功能
			让免费版MarkdownPad2使用Pro版本的功能 找到配置文件 启用Markdown扩展模式 Markdown处理器:Github风格 语法检查设置 自动保存设置 找到配置文件 一般在用户的数据目 ... 
- 2018.11.17 Struts2框架入门
			Struts2 框架学习 一.struts2是什么? (1)概念 (2)struts2使用优势 自动封装参数 参数校验 结果的处理(转发|重定向) 国际化 显示等待页面 表单的防止重复提交 (3)st ... 
- java(IO)读写文件乱码转换UTF-8问题
			java(IO)读写文件乱码转换UTF-8问题 读取文件 String Content = ""; // 文件很长的话建议使用StringBuffer try { FileInpu ... 
- 21.Shiro在springboot与vue前后端分离项目里的session管理
			1.前言 当决定前端与后端代码分开部署时,发现shiro自带的session不起作用了. 然后通过对请求head的分析,然后在网上查找一部分解决方案. 最终就是,登录成功之后,前端接收到后端传回来的s ... 
- git使用过程的问题与解决办法
			一.什么是Git Git是目前世界上最先进的分布式版本控制系统.工作原理 / 流程: Workspace:工作区Index / Stage:暂存区Repository:仓库区(或本地仓库)Remote ... 
- Flask—06-理解掌握flask数据模型(02)
			数据模型 模型关系 一对多(使用最多) 一:学生(Student) 需要添加反向引用 多:文章(Article) 需要添加外键关联 一对一 一:学生(Student),主表 需要添加反向引用,在一对多 ... 
