在 Go 中加载 CSV 文件

2022年 10月 11日 33.7k 0

这是在 Go 中逐行打开 CSV 文件的一种非常简单的方法。假设我们有一个pops.csv看起来像这样的 CSV 文件

城市人口
拉各斯21000000
东京37400000
德里28500000
里约热内卢13300000

要逐行读取文件,

package main

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

type CityPopulation struct {
	City  string
	Population string
}

func check(e error) {
	if e != nil {
		panic(e)
	}

}

func main() {
	fmt.Println("This is the entry point!")

	file, err := os.Open("pops.csv")
	check(err)
	println("Log: Opened CSV file")

	reader := csv.NewReader(file)

	var pops []CityPopulation

	for {
		line, err := reader.Read()

		if err == io.EOF {
			break
		}
		check(err)

		pops = append(pops, CityPopulation{
			City:  line[0],
			Population: line[1],
		})
	}
	for i := range pops {
        fmt.Printf("The city of %s is populated with %s people.\n" , pops[i].City, pops[i].Population)
	}
}

我们创建了一个结构CityPopulation来保存 CSV 的值。然后我们创建了一个函数check(e error)来检查错误。该函数仅检查文件中的错误和恐慌。

在 main 函数中,我们使用os.Open("pops.csv")打开 CSV 文件并加载它。然后我们用它csv.NewReader()来创建一个阅读器。然后我们使用 for 循环逐行读取文件。请注意io.EOF,当它到达 CSV 文件的末尾时,它由 reader.Read() 发出。然后我们将该行的内容加载到pops之前创建的切片中。

相关文章

JavaScript2024新功能:Object.groupBy、正则表达式v标志
PHP trim 函数对多字节字符的使用和限制
新函数 json_validate() 、randomizer 类扩展…20 个PHP 8.3 新特性全面解析
使用HTMX为WordPress增效:如何在不使用复杂框架的情况下增强平台功能
为React 19做准备:WordPress 6.6用户指南
如何删除WordPress中的所有评论

发布评论