使用Go語(yǔ)言讀取CSV文件并打印的操作指南
案例目標(biāo)
掌握如何使用 Go 語(yǔ)言讀取 CSV 文件,并將內(nèi)容逐行打印到終端。
CSV(Comma-Separated Values)是一種常見(jiàn)的輕量級(jí)數(shù)據(jù)交換格式,本案例幫助你學(xué)習(xí)如何使用標(biāo)準(zhǔn)庫(kù) encoding/csv
來(lái)處理 CSV 文件。
應(yīng)用場(chǎng)景
- • 讀取用戶上傳的數(shù)據(jù)表格
- • 分析日志、導(dǎo)入信息
- • 處理 Excel 導(dǎo)出的數(shù)據(jù)(保存為 .csv)
涉及知識(shí)點(diǎn)
- • 使用
os.Open()
打開(kāi)文件 - • 使用
csv.NewReader()
讀取文件內(nèi)容 - • 使用
for
循環(huán)遍歷每一行 - • 錯(cuò)誤處理和資源釋放
示例CSV文件:data.csv
姓名,身份證號(hào),年齡 張三,123456789012345678,30 李四,234567890123456789,28 王五,345678901234567890,35
示例代碼
package main import ( "encoding/csv" "fmt" "os" ) func main() { // 打開(kāi)CSV文件 file, err := os.Open("data.csv") if err != nil { fmt.Println("打開(kāi)文件失敗:", err) return } defer file.Close() // 創(chuàng)建CSV讀取器 reader := csv.NewReader(file) // 讀取所有內(nèi)容(可選擇一行一行讀) records, err := reader.ReadAll() if err != nil { fmt.Println("讀取CSV內(nèi)容失敗:", err) return } // 打印CSV內(nèi)容 fmt.Println("CSV文件內(nèi)容如下:") for i, row := range records { fmt.Printf("第 %d 行: %v\n", i+1, row) } }
運(yùn)行結(jié)果示例
CSV文件內(nèi)容如下: 第 1 行: [姓名 身份證號(hào) 年齡] 第 2 行: [張三 123456789012345678 30] 第 3 行: [李四 234567890123456789 28] 第 4 行: [王五 345678901234567890 35]
技術(shù)說(shuō)明
- •
encoding/csv
是 Go 標(biāo)準(zhǔn)庫(kù)中的 CSV 解析器,提供快速可靠的讀寫(xiě)支持 - •
reader.ReadAll()
會(huì)一次性讀取全部?jī)?nèi)容,適合小文件(幾千行以內(nèi)) - • 若處理大型文件,建議使用
reader.Read()
逐行讀取
小結(jié)
本案例教會(huì)了你如何使用 Go 語(yǔ)言讀取 CSV 文件并打印內(nèi)容。掌握這種處理方式,將為你今后進(jìn)行批量數(shù)據(jù)導(dǎo)入、清洗、分析打下基礎(chǔ)。
到此這篇關(guān)于使用Go語(yǔ)言讀取CSV文件并打印的操作指南的文章就介紹到這了,更多相關(guān)Go讀取CSV文件并打印內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
從淺入深帶你掌握Golang數(shù)據(jù)結(jié)構(gòu)map
在?Go?語(yǔ)言中,map?是一種非常常見(jiàn)的數(shù)據(jù)類型,它可以用于快速地檢索數(shù)據(jù)。本篇文章將介紹?Go?語(yǔ)言中的?map,包括?map?的定義、初始化、操作和優(yōu)化,需要的可以參考一下2023-04-04詳解go程序如何在windows服務(wù)中開(kāi)啟和關(guān)閉
這篇文章主要介紹了一個(gè)go程序,如何在windows服務(wù)中優(yōu)雅開(kāi)啟和關(guān)閉,文中通過(guò)代碼示例和圖文講解的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下2024-07-07Go語(yǔ)言異常處理(Panic和recovering)用法詳解
異常處理是程序健壯性的關(guān)鍵,往往開(kāi)發(fā)人員的開(kāi)發(fā)經(jīng)驗(yàn)的多少?gòu)漠惓2糠痔幚砩暇湍艿玫襟w現(xiàn)。Go語(yǔ)言中沒(méi)有Try?Catch?Exception機(jī)制,但是提供了panic-and-recover機(jī)制,本文就來(lái)詳細(xì)講講他們的用法2022-07-07Go語(yǔ)言中html/template模塊詳細(xì)功能介紹與示例代碼
這篇文章主要介紹了Go語(yǔ)言中html/template模塊詳細(xì)功能介紹與示例代碼,這里說(shuō)的是go 語(yǔ)言中自帶的包html/template里的一些基本操作,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下2025-03-03詳解go 動(dòng)態(tài)數(shù)組 二維動(dòng)態(tài)數(shù)組
這篇文章主要介紹了go 動(dòng)態(tài)數(shù)組 二維動(dòng)態(tài)數(shù)組,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-07-07Golang的命名規(guī)范及最佳實(shí)踐(推薦!)
這篇文章主要給大家介紹了關(guān)于Golang的命名規(guī)范及最佳實(shí)踐的相關(guān)資料,命名規(guī)則涉及變量、常量、全局函數(shù)、結(jié)構(gòu)、接口、方法等的命名,文中介紹的非常詳細(xì),需要的朋友可以參考下2023-10-10Go語(yǔ)言如何使用golang-jwt/jwt/v4進(jìn)行JWT鑒權(quán)詳解
最近項(xiàng)目中需要用到鑒權(quán)機(jī)制,golang中jwt可以用,這篇文章主要給大家介紹了關(guān)于Go語(yǔ)言如何使用golang-jwt/jwt/v4進(jìn)行JWT鑒權(quán)的相關(guān)資料,需要的朋友可以參考下2022-09-09