博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ruby 操作csv
阅读量:6037 次
发布时间:2019-06-20

本文共 1391 字,大约阅读时间需要 4 分钟。

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 #=> ArrayendCSV.foreach('test.csv', headers:true) do |row|  puts row.class #=> CSV::Rowend#return_headers:true 返回标题CSV.foreach('test.csv', return_headers:true) do |row|  p row  #=> 返回Arrayend

     

  • 字符串中读取:一次读取一行
    CSV.parse("CSV,data,String") do |row|  # use row here...end

     

  • 字符串中读取:全部读取
    CSV.parse("CSV,data,String")#[]方法需要返回的类型为CSV::ROW;所以设置参数headers:truecontent = File.read('data.csv')csv = CSV.parse(content, headers:true)sum = 0csv.each do |row|  sum += row['id'].to_iendputs 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"]

     

转载于:https://www.cnblogs.com/wf0117/p/9080726.html

你可能感兴趣的文章
检测点1.1
查看>>
android--------阿里 AndFix 热修复
查看>>
java springcloud版b2b2c社交电商spring cloud分布式微服务 (七)高可用的分布式配置中心(Spring Cloud Config)...
查看>>
Oozie与Coordinator调度讲解及系统时区配置与定时触发两种配置方式
查看>>
RGB_YUV_YCbCr
查看>>
tesseract 安装及使用
查看>>
优化SqlServer--数据压缩
查看>>
SharePoint 自定义WebPart之间的连接
查看>>
231. Power of Two
查看>>
control.add()
查看>>
p点到(a,b)点两所在直线的垂点坐标及p点是否在(a,b)两点所在直线上
查看>>
GridView强制换行与自动换行
查看>>
51Nod 1003 阶乘后面0的数量(数学,思维题)
查看>>
Sublime text3中配置Github
查看>>
Getting Started with iOS Development Part10:Customizing your Mobile target's Splash screen
查看>>
asp.net C# MVC 提交表单后清空表单
查看>>
备份软件 FreeFileSync 怎么用
查看>>
Asp.net,C# 加密解密字符串
查看>>
网页视频播放器插件源码
查看>>
CentOS7 睡眠 休眠 关机 电源
查看>>