在GO错误中写入CSV

我正在尝试使用GO随附的标准库“ encoding / csv”在GO中写入一个csv文件。但是,没有任何内容写入文件,也没有错误返回。下面是编写代码。映射中的值是字符串数组。感谢您的任何帮助。


func writeErrors() {


    file, error := os.OpenFile("output.csv", os.O_APPEND|os.O_CREATE, 0666 )


    if error != nil {panic(error)}

    defer file.Close()


    // New Csv writer

    writer := csv.NewWriter(file)


    // Headers

    var new_headers = []string { "group_id", "account_id", "location_id", "payment_rating", "records_with_error" }

    returnError := writer.Write(new_headers)

    if returnError != nil {

        fmt.Println(returnError)

    }


    for key, value := range errors {

        returnError := writer.Write(value)

        if returnError != nil {

            fmt.Println(returnError)

        }

        fmt.Println("Writing: ", key, value)

    }

}


慕桂英4014372
浏览 203回答 3
3回答

慕姐8265434

还有一个附加标志,因为您直接调用os.OpenFile而不是通过os.Create来为您传递O_RDWR。您需要与O_APPEND一起传递O_RDWR或O_WRONLY | O_CREATE标志。O_APPEND仅用于表示写入时应将写入追加到文件末尾,它并不指定打开模式本身。附加说明:您使用“错误”作为变量名称,实际上是Go中的一种类型,通常用于命名错误返回变量的惯用法是“错误”

慕村225694

您需要在writer.Flush()之后致电writer.Write()//from package documentationfunc (w *Writer) Flush()Flush writes any buffered data to the underlying io.Writer.

慕工程0101907

os.Create打开一个可写文件,可以从源代码和文档中了解到
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go