当前位置:   article > 正文

golang使用encoding/csv对csv文件进行读取和写入_windows中golang将csv写入指定目录

windows中golang将csv写入指定目录

1. 读取csv文件

package main

import (
	"fmt"
	"encoding/csv"
	"os"
	"io"
)


func main(){
	f, err := os.Open("data.csv")
	if err != nil{
		fmt.Println("Error: ", err)
		return 
	}
	 
	reader := csv.NewReader(f)
	
	// 可以一次性读完
	result, err := reader.ReadAll()
	if err != nil{
		fmt.Println("Error: ", err)
		return 
	}
	fmt.Println(result)
	
	// 也可以一行一行进行读取
	// 但是注意不要两种方式都使用
	// 运行本代码第二种方式有可能没有数据,因为读指针已经指到了最后
	for {
		line, err := reader.Read()
		if err == io.EOF{
			break
		} else if err != nil{
			fmt.Println("Error: ", err)
			return 
		}
		fmt.Println(line)
	}
	
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42

写入csv文件

package main

import (
	"fmt"
	"encoding/csv"
	"os"
)


func main(){
	f, err := os.OpenFile("data.csv", os.O_RDWR, 0666)
	if err != nil{
		fmt.Println("Error: ", err)
		return 
	}
	 
	writer := csv.NewWriter(f)
	var header = []string{"id", "name", "age"}
	writer.Write(header)
	var data =  []string{"3", "John", "23"}
	writer.Write(data)
	
	// 也可以一次性写入多条
	var d = [][]string{{"1","Edgar", "20"}, {"2","Tom","18"}}
	writer.WriteAll(d)
	
	// 将缓存中的内容写入到文件里	
	writer.Flush()
	
	if err = writer.Error(); err != nil{
		fmt.Println(err)
	}
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/624872
推荐阅读
相关标签
  

闽ICP备14008679号