009-Go 读取写入CSV文件

Posted YSHY

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了009-Go 读取写入CSV文件相关的知识,希望对你有一定的参考价值。

package main

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

type Post struct{
	Id	int
	Content	string
	Author	string
}

func main(){
	csvFile, err := os.Create("posts.csv")
	if err!= nil{
		panic(err)
	}
	defer csvFile.Close()

	posts := []Post{
		Post{Id:100,Content:"Hello go",Author:"张三"},
		Post{Id:200,Content:"Hello java",Author:"李四"},
		Post{Id:300,Content:"Hello php",Author:"王五"},
	}

	writer := csv.NewWriter(csvFile)
	for _,post := range posts{
		line := []string{strconv.Itoa(post.Id), post.Content, post.Author}
		err := writer.Write(line)
		if err != nil{
			panic(err)
		}
	}
	writer.Flush()

	file,err := os.Open("posts.csv")
	if err != nil{
		panic(err)
	}
	defer file.Close()

	reader := csv.NewReader(file)
	reader.FieldsPerRecord = -1
	record, err := reader.ReadAll()
	if err != nil{
		panic(err)
	}

	var myposts []Post
	for _, item := range record{
		id, _ := strconv.ParseInt(item[0], 0, 0)
		post := Post{Id: int(id), Content:item[1], Author:item[2]}
		myposts = append(myposts, post)
	}

	for _, value := range myposts{
		fmt.Printf("Id:%d,Content:%s,Author:%s\n", value.Id, value.Content, value.Author)
	}

}

  

以上是关于009-Go 读取写入CSV文件的主要内容,如果未能解决你的问题,请参考以下文章

如何从流中读取 CSV 文件并在写入时处理每一行?

从 csv 文件读取数据并使用 phpspreadsheet 写入 excel

java把数据库读取的数据通过流写入到csv文件里,请问怎么写代码?请求。

如何在同一循环中“从 .csv 读取并写入 excel”

Jmeter读取CSV文件在写入后返回<EOF>

pandas-19 DataFrame读取写入文件的方法