go语言自带的有csv文件读取模块,看起来好像不错,今天玩玩,也算是系统学习go语言的一部分……^_^

一、写csv文件

函数:

func NewWriter(w io.Writer) *Writer

func (w *Writer) Flush()

func (w *Writer) Write(record []string) (err os.Error)

func (w *Writer) WriteAll(records [][]string) (err os.Error)

具体见官网:http://golang.org/pkg/csv/#NewWriter

其实写csv文件大可不必用这些函数,直接按照规则写入文件就行,不过这里有这些函数,还是写个demo,也方便我以后使用:

package main

import (
"csv"
"os"
"bytes"
"fmt"
) func main(){
fileName := "2.csv"
buf := new(bytes.Buffer)
r2 := csv.NewWriter(buf)
for i:=0;i<10;i++ {
s := make([]string,3)
s[0] = "user id"
s[1] = "name"
s[2] = "depart"
r2.Write(s)
r2.Flush()
}
fmt.Println(buf)
fout,err := os.Create(fileName)
defer fout.Close()
if err != nil {
fmt.Println(fileName,err)
return
}
fout.WriteString(buf.String())
}

二、读csv文件

函数:

func NewReader(r io.Reader) *Reader

func (r *Reader) Read() (record []string, err os.Error)

func (r *Reader) ReadAll() (records [][]string, err os.Error)

具体见官网:http://golang.org/pkg/csv/#Reader.Read

1、首先要解决的是读取文件的所有内容并存成字符串,这里用的是ioutil模块,具体代码如下:

package main

import (
"io/ioutil"
"fmt"
) func main(){
b,err := ioutil.ReadFile("1.csv")
if err != nil {
panic(err.String())
}
//fmt.Println(b)
fmt.Printf("%s",string(b))
}

2、读取csv文件内容:

package main

import (
"fmt"
"csv"
"strings"
"io/ioutil"
) func main(){
//fileName := "1.csv"
fmt.Printf("Input file name : ")
var fileName string
fmt.Scanf("%s",&fileName)
cntb,err := ioutil.ReadFile(fileName)
if err != nil {
panic(err.String())
}
r2 := csv.NewReader(strings.NewReader(string(cntb)))
ss,_ := r2.ReadAll()
//fmt.Println(ss)
sz := len(ss)
for i:=0;i<sz;i++{
fmt.Println(ss[i])
}
}

golang csv问题的更多相关文章

  1. golang csv,xls,xlsx

    要用到的包: "golang.org/x/text/encoding/simplifiedchinese"    "golang.org/x/text/transform ...

  2. golang 导出CSV文件中文乱码的问题

    golang  导出CSV文件中文乱码的问题 解决办法: 在csv文件的开头写入 UTF-8 BOM // 创建文件 dstf, err := os.Create("./data/" ...

  3. golang写入csv

    package main import ( "encoding/csv" "fmt" "os" ) func main() { file, ...

  4. 【Golang】基础-操作 csv 文件

    1. csv plugins,自带极简 1.1 写数据到csv文件 知识点:encoding/csv 库的 Write 方法使用[]string的切片格式追加方式写入数据 1.1.1 追加写入 pac ...

  5. [Golang]Go Packages

    ---------------------------------------------------------------------------------------------------- ...

  6. Go语言(golang)开源项目大全

    转http://www.open-open.com/lib/view/open1396063913278.html内容目录Astronomy构建工具缓存云计算命令行选项解析器命令行工具压缩配置文件解析 ...

  7. Golang爬虫示例包系列教程(一):pedaily.com投资界爬虫

    Golang爬虫示例包 文件结构 自己用Golang原生包封装了一个爬虫库,源码见go get -u -v github.com/hunterhug/go_tool/spider ---- data ...

  8. [转]Go语言(golang)开源项目大全

    内容目录 Astronomy 构建工具 缓存 云计算 命令行选项解析器 命令行工具 压缩 配置文件解析器 控制台用户界面 加密 数据处理 数据结构 数据库和存储 开发工具 分布式/网格计算 文档 编辑 ...

  9. Golang 网络爬虫框架gocolly/colly 四

    Golang 网络爬虫框架gocolly/colly 四 爬虫靠演技,表演得越像浏览器,抓取数据越容易,这是我多年爬虫经验的感悟.回顾下个人的爬虫经历,共分三个阶段:第一阶段,09年左右开始接触爬虫, ...

随机推荐

  1. SQL简介

    SQL 是用于访问和处理数据库的标准的计算机语言. 什么是 SQL? SQL 指结构化查询语言 SQL 使我们有能力访问数据库 SQL 是一种 ANSI 的标准计算机语言 编者注:ANSI,美国国家标 ...

  2. How to prevent SQL injection attacks?

    In our earlier tutorial on SQL Injection, one way to have prevented the SQL injection attack was by ...

  3. 如何用ajax提交多组同样的数据(数组)到后台?

    我在AJAX中这样写 $("#subbutton").click(function(){          var machineCode_1=$("#machineCo ...

  4. iOS应用架构谈 view层的组织和调用方案

    当我们开始设计View层的架构时,往往是这个App还没有开始开发,或者这个App已经发过几个版本了,然后此时需要做非常彻底的重构. 一般也就是这两种时机会去做View层架构,基于这个时机的特殊性,我们 ...

  5. lighttpd与fastcgi+cgilua原理、代码分析与安装

    原理 http://www.cnblogs.com/skynet/p/4173450.html 快速通用网关接口(Fast Common Gateway Interface/FastCGI)是通用网关 ...

  6. Struts2(五):ActionSupport

    我们在上一章节中的一个列子中使用到了一个标识跳转到登录页面的例子: 示例是这样写的: index.jsp: <br/> <a href="gotoLoginPage&quo ...

  7. SQLite的使用--SQLite语句

    一.SQLite的介绍   1.为什么要存储数据?        1.1 手机数据大多都是从网络加载的,不存储,每次滚动界面都要从新发送网络请求加载数据,浪费流量      1.2 当用户没网的时候, ...

  8. android开发中scrollview添加自定义view的滑动显示问题

    最近做了一个实战用到自定义view,由于view比屏幕大所以想放到scrollview中,如下程序.发现不显示.于是对scrollview进行了研究. <LinearLayout xmlns:a ...

  9. WIN8系统安装软件时提示"扩展属性不一致"的解决方法

    单位新添加了两台T440P笔记本电脑,需要安装五笔输入法,同事一直安装不上.开始以为是WIN8系统跟输入法不兼容的问题,怀疑是输入法下载有误.于是直接在输入法官网下载了输入法,问题依旧:扩展属性不一致 ...

  10. asp获取文件名和扩展名的函数代码

    <% '获取文件名(不含扩展名) Function getFilename(text)text = Left(text,inStrRev(text,".")-1)getFil ...