您的位置:首页 > 编程语言 > Go语言

csv文件操作(go语言)

2012-02-19 22:43 309 查看
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])
}
}

好,就这些了,希望对你有帮助
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: