使用Go語言讀取CSV文件并打印的操作指南
案例目標(biāo)
掌握如何使用 Go 語言讀取 CSV 文件,并將內(nèi)容逐行打印到終端。
CSV(Comma-Separated Values)是一種常見的輕量級(jí)數(shù)據(jù)交換格式,本案例幫助你學(xué)習(xí)如何使用標(biāo)準(zhǔn)庫 encoding/csv 來處理 CSV 文件。
應(yīng)用場景
- • 讀取用戶上傳的數(shù)據(jù)表格
- • 分析日志、導(dǎo)入信息
- • 處理 Excel 導(dǎo)出的數(shù)據(jù)(保存為 .csv)
涉及知識(shí)點(diǎn)
- • 使用
os.Open()打開文件 - • 使用
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() {
// 打開CSV文件
file, err := os.Open("data.csv")
if err != nil {
fmt.Println("打開文件失敗:", 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ù)說明
- •
encoding/csv是 Go 標(biāo)準(zhǔn)庫中的 CSV 解析器,提供快速可靠的讀寫支持 - •
reader.ReadAll()會(huì)一次性讀取全部內(nèi)容,適合小文件(幾千行以內(nèi)) - • 若處理大型文件,建議使用
reader.Read()逐行讀取
小結(jié)
本案例教會(huì)了你如何使用 Go 語言讀取 CSV 文件并打印內(nèi)容。掌握這種處理方式,將為你今后進(jìn)行批量數(shù)據(jù)導(dǎo)入、清洗、分析打下基礎(chǔ)。
到此這篇關(guān)于使用Go語言讀取CSV文件并打印的操作指南的文章就介紹到這了,更多相關(guān)Go讀取CSV文件并打印內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
從淺入深帶你掌握Golang數(shù)據(jù)結(jié)構(gòu)map
在?Go?語言中,map?是一種非常常見的數(shù)據(jù)類型,它可以用于快速地檢索數(shù)據(jù)。本篇文章將介紹?Go?語言中的?map,包括?map?的定義、初始化、操作和優(yōu)化,需要的可以參考一下2023-04-04
詳解go程序如何在windows服務(wù)中開啟和關(guān)閉
這篇文章主要介紹了一個(gè)go程序,如何在windows服務(wù)中優(yōu)雅開啟和關(guān)閉,文中通過代碼示例和圖文講解的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下2024-07-07
Go語言異常處理(Panic和recovering)用法詳解
異常處理是程序健壯性的關(guān)鍵,往往開發(fā)人員的開發(fā)經(jīng)驗(yàn)的多少從異常部分處理上就能得到體現(xiàn)。Go語言中沒有Try?Catch?Exception機(jī)制,但是提供了panic-and-recover機(jī)制,本文就來詳細(xì)講講他們的用法2022-07-07
Go語言中html/template模塊詳細(xì)功能介紹與示例代碼
這篇文章主要介紹了Go語言中html/template模塊詳細(xì)功能介紹與示例代碼,這里說的是go 語言中自帶的包html/template里的一些基本操作,文中通過代碼介紹的非常詳細(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ù)組,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-07-07
Golang的命名規(guī)范及最佳實(shí)踐(推薦!)
這篇文章主要給大家介紹了關(guān)于Golang的命名規(guī)范及最佳實(shí)踐的相關(guān)資料,命名規(guī)則涉及變量、常量、全局函數(shù)、結(jié)構(gòu)、接口、方法等的命名,文中介紹的非常詳細(xì),需要的朋友可以參考下2023-10-10
Go語言如何使用golang-jwt/jwt/v4進(jìn)行JWT鑒權(quán)詳解
最近項(xiàng)目中需要用到鑒權(quán)機(jī)制,golang中jwt可以用,這篇文章主要給大家介紹了關(guān)于Go語言如何使用golang-jwt/jwt/v4進(jìn)行JWT鑒權(quán)的相關(guān)資料,需要的朋友可以參考下2022-09-09

