csv - Golang 写入 CSV 的新列

标签 csv go slice

我正在用 Go 将两组数据写入一个 CSV。现在,使用 csv.NewWriter,我可以将它们写入相同的列。这并不理想,我希望它们并排放置,相邻列中的第二个数据集。这是我现在正在做的事情:

    csvOut, _ := os.Create("Summary.csv")
    writer := csv.NewWriter(csvOut)

    for _, value := range dataset1 {
            writer.Write(value)
    }
    writer.Flush()
    for _, value := range dataset2 {
            writer.Write(value)
    }
    writer.Flush()

我知道普通编写器有一些偏移选项,csv 编写器有类似的东西吗?

最佳答案

循环遍历源数据集记录。连接每个数据集中的记录以创建输出记录。将输出记录写入文件。

csvOut, _ := os.Create("Summary.csv")
writer := csv.NewWriter(csvOut)

var record []string  // declare record outside loop to reduce allocations
for i := range dataset1 {
        record = append(record[:0], dataset1[i]...) // copy data set 1 to beginning of output record
        record = append(record, dataset2[i]...) // append data set 2 to output record
        writer.Write(record)
}
writer.Flush()

此代码假定 len(dataset1) == len(dataset2)。如果这不是真的,则根据应用程序要求修改代码(添加空值、截断为较短的数据集,...)

关于csv - Golang 写入 CSV 的新列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50421449/

相关文章:

javascript - 将 javascript 与 beego 结合使用

http - 如何在 go 中以流的形式上传文件?

go - 紧急情况:运行时错误:索引超出范围[0],长度为0

python csv到xlsx拆分文件excel

excel - KDB:将数据保存到 CSV 时保留前导零?

go - 如何使用 Go 制作 GUI 窗口?

go - 就地截断 slice

python - "#using-proxy-artist".format(orig_handle) 带饼图(来自 CSV 的数据) Matplotlib

c# - 将 IBM DB2 IXF 文件转换为 CSV 或 XML

Haskell 相当于 Ruby 的 slice_when