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 ...
随机推荐
- SqlServer存储过程示例
/* 步骤1 删除本地及海关单证待分派表.报关单表中的数据 delete from W_DOCUMENTS; delete from W_DOCUMENTS_TEST; delete from W_D ...
- 【Leetcode】【Easy】Binary Tree Level Order Traversal II
Given a binary tree, return the bottom-up level order traversal of its nodes' values. (ie, from left ...
- USB3.0驱动与2.0有什么区别
安装好usb3.0驱动就可以驱动usb 3.0设备,能够适应于大部份主板,帮助用户解决usb3.0和电脑无法正常通讯的问题,并支持winxp,win7和win8系统,是目前网络上最好用的usb3.0万 ...
- IOS Core Motion、UIAccelerometer(加速计使用)
加速计 ● 加速计的作用 ● 用于检测设备的运动(比如摇晃) ● 加速计的经典应用场景 ● 摇一摇 ● 计步器 ● 加速计程序的开发 ● 在iOS4以前:使用UIAccelerometer,用法非常简 ...
- IOS AFN请求 总结
一.2大管理对象 1.AFHTTPRequestOperationManager* 对NSURLConnection的封装 2.AFHTTPSessionManager* 对NSURLSession的 ...
- datatable Left and right fixed columns
$(document).ready(function() { var table = $('#example').DataTable( { scrollY: "300px", sc ...
- Android(java)学习笔记58:Android 英文朗诵
1. 首先,我先把代码放到下面: package com.himi.speaker; import java.util.Locale; import android.app.Activity; imp ...
- PyCharm Notes | PyCharm 使用笔记(远程访问服务器code配置指南)
PyCharm is a strong IDE for python programmer. Not only because it has a similar face with VS or som ...
- 【题解】UVA11584 Partitioning by Palindromes
UVA11584 https://www.luogu.org/problemnew/show/UVA11584 暑假开始刷lrj紫/蓝书DP题 这几天做的一道 思路 预处理出所有的回文串是否存在 前提 ...
- C#位数不足补零
C#位数不足补零:int i=10;方法1:Console.WriteLine(i.ToString("D5"));方法2:Console.WriteLine(i.ToString ...