csv檔案操作(go語言)

來源:互聯網
上載者:User
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。

go語言內建的有csv檔案讀模數塊,看起來好像不錯,今天玩玩,也算是系統學習go語言的一部分……^_^

 

一、寫csv檔案

函數:

funcNewWriter(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 mainimport (        "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檔案

函數:

funcNewReader(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 mainimport (        "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 mainimport (        "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])        }}
好,就這些了,希望對你有協助
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.