golang csv问题

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])  } }

转载于:https://www.cnblogs.com/zhangym/p/6142738.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值