Go 删除CSV中的空行

Go 删除CSV中的空行,go,Go,我正在尝试清理一个CSV文件,该文件的构建方式如下: ;Header1;Header2;Header3; ;;;; ;1;2;3; ;;;; 如何使用Go检测和删除这些“;;;;;”空行 编辑: 到目前为止我有这个(缩短) 下面的代码应该会有所帮助。为了便于理解,我对相关部分进行了评论 package main import ( "encoding/csv" "os" ) // handle error using panic fun

我正在尝试清理一个CSV文件,该文件的构建方式如下:

;Header1;Header2;Header3;
;;;;
;1;2;3;
;;;;
如何使用Go检测和删除这些“;;;;;”空行

编辑:

到目前为止我有这个(缩短)


下面的代码应该会有所帮助。为了便于理解,我对相关部分进行了评论

package main

import (
    "encoding/csv"
    "os"
)

// handle error using panic
func handleError(err error) {
    if err != nil {
        panic(err)
    }
}

// empty returns true if all fields are empty
func empty(record []string) bool {
    for i := range record {
        if record[i] != "" {
            return false
        }
    }
    return true
}

func main() {
    in, err := os.Open("in.csv")
    handleError(err)
    defer in.Close()

    out, err := os.Create("out.csv")
    handleError(err)
    defer out.Close()

    r := csv.NewReader(in)
    {
        r.Comma = ';'             // Delimiter
        r.FieldsPerRecord = 0     // Number of fields should match with the header
        r.TrimLeadingSpace = true // Trim the leading spaces
    }

    w := csv.NewWriter(out)
    {
        w.Comma = ';' // Delimiter
    }

    // Read all records
    records, err := r.ReadAll()
    handleError(err)

    // Write records that are not empty
    for _, record := range records {
        if !empty(record) {
            _ = w.Write(record)
        }
    }

    // Flush records in buffer
    w.Flush()
}
输入:

;Header1;Header2;Header3;
;;;;
;1;2;3;
;;;;
输出:

;Header1;Header2;Header3;
;1;2;3;

到目前为止,您有什么代码?您自己做过任何研究或尝试过解决这个问题吗?
;Header1;Header2;Header3;
;1;2;3;