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 ...
随机推荐
- Python类三种方法,函数传参,类与实例变量(一)
1 Python的函数传递: 首先所有的变量都可以理解为内存中一个对象的'引用' a = 1 def func(a): a = 2 func(a) print(a) # 1 a = 1 def fun ...
- 【Leetcode】【Easy】Valid Sudoku
Determine if a Sudoku is valid, according to: Sudoku Puzzles - The Rules. The Sudoku board could be ...
- 路由 vue-router
vue-router官方文档 1.router跳转页面 编程式的导航 this.$router.push('/index'); 2.mode Router构造配置 const router = new ...
- 再学UML-深入浅出UML类图(二)
类与类之间的关系(1) 在软件系统中,类并不是孤立存在的,类与类之间存在各种关系,对于不同类型的关系,UML提供了不同的表示方式. 1. 关联关系 关联(Association)关系是类与 ...
- March 20 2017 Week 12 Monday
A goal is a dream with a deadline. 目标就是给梦想一个期限. Dream without dealine is just daydream, because you ...
- Gecko Robotics, Inc. SE II Test OA -- 菜到扣脚
There are three problems in hackrank. two sum http request to get title binary search (find first la ...
- HDU-3092 Least common multiple---数论+分组背包
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=3092 题目大意: 有一个数字n,现在要把它分解成几个数字相加!然后这几个数字有最小公倍数,题目目的是 ...
- Android(java)学习笔记5:线程的生命周期
1. 我们学习线程本质就是学习如何开始线程和终止线程.下面这个关于线程的生命周期图,要牢记: 新建状态:当程序使用new关键字创建了一个线程之后,该线程就处于新建状态.此时和其他Java对象一样,它仅 ...
- pthread使用
https://developer.apple.com/library/content/documentation/Cocoa/Conceptual/Multithreading/CreatingTh ...
- 开源重磅,java内容管理系统CMS,点击就可以编辑,保存,轻松构建自己的站点
买的暂时空间不给力.内存不足,老给关闭,先转到京东云上了,免费的,也不知免费多久. 这是地址2 http://java4cms.jd-app.com/index.html 这是地址 http:// ...