You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Go语言中读取CSV文件并原样输出而非转为切片?

解决Go语言读取CSV后原样输出的问题

你遇到的问题是因为csv.Reader.ReadAll()会把CSV解析成二维字符串切片,直接用fmt.Println()打印就会输出切片的默认格式。要原样输出CSV内容,有几种实用解决方案:

方案1:直接读取原始文件内容输出

如果不需要对CSV内容做结构化处理,只是要原样输出,直接读取文件原始内容是最直接的方式:

package main

import (
    "fmt"
    "io"
    "log"
    "os"
)

func main() {
    file, err := os.Open("CSV_FILE.csv")
    if err != nil {
        log.Fatal("Error reading CSV: ", err)
    }
    defer file.Close()

    content, err := io.ReadAll(file)
    if err != nil {
        log.Fatal("Error reading file content: ", err)
    }

    fmt.Print(string(content))
}

方案2:解析后重新拼接为CSV格式

如果已经用encoding/csv解析了CSV(比如需要先做数据处理再输出),可以把每个记录的字段用逗号拼接后逐行打印:

package main

import (
    "encoding/csv"
    "fmt"
    "log"
    "os"
    "strings"
)

func main() {
    file, err := os.Open("CSV_FILE.csv")
    if err != nil {
        log.Fatal("Error reading CSV: ", err)
    }
    defer file.Close()

    reader := csv.NewReader(file)
    reader.Comma = ','
    records, err := reader.ReadAll()
    if err != nil {
        log.Fatal("Error reading CSV: ", err)
    }

    for _, record := range records {
        fmt.Println(strings.Join(record, ","))
    }
}

方案3:用csv.Writer输出标准CSV格式

如果你的CSV包含带逗号的特殊字段(比如"Doe, John"),上面的拼接方式会破坏格式,这时推荐用csv.Writer来保证输出的合规性:

package main

import (
    "encoding/csv"
    "log"
    "os"
)

func main() {
    file, err := os.Open("CSV_FILE.csv")
    if err != nil {
        log.Fatal("Error reading CSV: ", err)
    }
    defer file.Close()

    reader := csv.NewReader(file)
    reader.Comma = ','
    records, err := reader.ReadAll()
    if err != nil {
        log.Fatal("Error reading CSV: ", err)
    }

    writer := csv.NewWriter(os.Stdout)
    writer.Comma = ','
    defer writer.Flush()

    for _, record := range records {
        if err := writer.Write(record); err != nil {
            log.Fatal("Error writing record: ", err)
        }
    }
}

内容的提问来源于stack exchange,提问作者Shubhankar Sarkar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 18:12:45