
1

go存储之CSV
source link: https://blog.51cto.com/u_3764469/5580616
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

go存储之CSV
精选 原创CSV格式是一种文本格式,应用比较广泛,可以通过encoding/csv包进行操作。
type Person struct {
Id int
Name string
}
csvFile, err := os.Create("person.csv")
if err != nil {
panic(err)
}
defer csvFile.Close()
allPersons := []Person{
Person{Id: 1, Name: "刘备"},
Person{Id: 2, Name: "关羽"},
Person{Id: 3, Name: "张飞"},
Person{Id: 4, Name: "刘备"},
}
writer := csv.NewWriter(csvFile)
for _, person := range allPersons {
line := []string{
strconv.Itoa(person.Id),
person.Name,
}
err := writer.Write(line)
if err != nil {
panic(err)
}
}
Id int
Name string
}
csvFile, err := os.Create("person.csv")
if err != nil {
panic(err)
}
defer csvFile.Close()
allPersons := []Person{
Person{Id: 1, Name: "刘备"},
Person{Id: 2, Name: "关羽"},
Person{Id: 3, Name: "张飞"},
Person{Id: 4, Name: "刘备"},
}
writer := csv.NewWriter(csvFile)
for _, person := range allPersons {
line := []string{
strconv.Itoa(person.Id),
person.Name,
}
err := writer.Write(line)
if err != nil {
panic(err)
}
}
先用Create方法生成csv文件,allPersons是需要写入文件的数据,NewWriter函数创建一个写入器,并把文件用作参数,将其传递给写入器,最后调用写入器的Write方法,将一系列由字符串组成的切片写入CSV文件。
file, err := os.Open("person.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 persons []Person
for _, item := range record {
id, _ := strconv.ParseInt(item[0], 0, 0)
person := Person{Id: int(id), Name: item[1]}
persons = append(persons, person)
}
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 persons []Person
for _, item := range record {
id, _ := strconv.ParseInt(item[0], 0, 0)
person := Person{Id: int(id), Name: item[1]}
persons = append(persons, person)
}
先Open打开文件,使用NewReader生成读取器,使用ReadAll方法读取全部记录,返回数据切片,最后循环切片组装数据为Person切片
- 赞
- 收藏
- 评论
- 分享
- 举报
上一篇:go存储之内存
</div
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK