Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/go/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
戈朗写CSV新专栏_Csv_Go_Slice - Fatal编程技术网

戈朗写CSV新专栏

戈朗写CSV新专栏,csv,go,slice,Csv,Go,Slice,我将两组数据写入Go中的一个CSV。现在,使用csv.NewWriter,我可以将它们写入相同的列。这是不理想的,我想他们并排,在相邻的第二列数据集。以下是我现在正在做的: csvOut, _ := os.Create("Summary.csv") writer := csv.NewWriter(csvOut) for _, value := range dataset1 { writer.Write(value) } write

我将两组数据写入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(数据集1)==len(数据集2)
。如果不是这样,则根据应用程序要求修改代码(添加空值、截断到较短的数据集等)

谢谢,这是最简单的方法。我认为可能有一种更优雅的方法,但串接字符串就可以了。