go语言csv文件的读取与写入
生活随笔
收集整理的這篇文章主要介紹了
go语言csv文件的读取与写入
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
go語言csv文件的讀取
暫時未整理
package mainimport ("encoding/csv""fmt""io""log""os" )func main() {//準備讀取文件fileName := "D:\\gotest\\src\\source\\test.csv"fs, err := os.Open(fileName)if err != nil {log.Fatalf("can not open the file, err is %+v", err)}defer fs.Close()r := csv.NewReader(fs)//針對大文件,一行一行的讀取文件for {row, err := r.Read()if err != nil && err != io.EOF {log.Fatalf("can not read, err is %+v", err)}if err == io.EOF {break}fmt.Println(row)}//針對小文件,也可以一次性讀取所有的文件//注意,r要重新賦值,因為readall是讀取剩下的fs1, _ := os.Open(fileName)r1 := csv.NewReader(fs1)content, err := r1.ReadAll()if err != nil {log.Fatalf("can not readall, err is %+v", err)}for _, row := range content {fmt.Println(row)}//創建一個新文件newFileName := "D:\\gotest\\src\\source\\newfile.csv"//這樣打開,每次都會清空文件內容//nfs, err := os.Create(newFileName)//這樣可以追加寫nfs, err := os.OpenFile(newFileName, os.O_RDWR|os.O_CREATE, 0666)if err != nil {log.Fatalf("can not create file, err is %+v", err)}defer nfs.Close()nfs.Seek(0, io.SeekEnd)w := csv.NewWriter(nfs)//設置屬性w.Comma = ','w.UseCRLF = truerow := []string{"1", "2", "3", "4", "5,6"}err = w.Write(row)if err != nil {log.Fatalf("can not write, err is %+v", err)}//這里必須刷新,才能將數據寫入文件。w.Flush()//一次寫入多行var newContent [][]stringnewContent = append(newContent, []string{"1", "2", "3", "4", "5", "6"})newContent = append(newContent, []string{"11", "12", "13", "14", "15", "16"})newContent = append(newContent, []string{"21", "22", "23", "24", "25", "26"})w.WriteAll(newContent)}轉載于:https://blog.51cto.com/14263015/2402913
總結
以上是生活随笔為你收集整理的go语言csv文件的读取与写入的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: LVS:三种负载均衡方式比较
- 下一篇: 前端基础入门四(JavaScript基础