91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何使用Go來合并兩個csv

發布時間:2021-10-28 10:52:50 來源:億速云 閱讀:156 作者:小新 欄目:開發技術

這篇文章主要為大家展示了“如何使用Go來合并兩個csv”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“如何使用Go來合并兩個csv”這篇文章吧。

背景

通常我們處理文件都是用python+pandas,確實很香。但是今天突然有人找我用go寫一個合并兩個csv文件的,需要將兩個csv按id進行合并,大致如下圖

如何使用Go來合并兩個csv

思路很簡單,先讀入兩個csv文件,然后遍歷比較id,如果相同就把另一個文件的內容加到第一個中。然后創建merge.csv,將上一步得到的數據寫入csv即可。

代碼部分

package main

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

 "fmt"
)

func join(fileName1 string, fileName2 string) (row [][]string) {
 fs1, _ := os.Open(fileName1)
 r1 := csv.NewReader(fs1)
 content1, err := r1.ReadAll()
 if err != nil {
  log.Fatalf("can not readall, err is %+v", err)
 }

 fs2, _ := os.Open(fileName2)
 r2 := csv.NewReader(fs2)
 content2, err := r2.ReadAll()
 if err != nil {
  log.Fatalf("can not readall, err is %+v", err)
 }
 row = make([][]string, len(content1[1:]))

 for i, row1 := range content1[1:] {
  for _, row2 := range content2[1:] {
   if row1[0] == row2[0] {
    row[i] = append(row[i], row1[0], row1[1], row1[2], row2[1], row2[2])
   }
  }
 }
 return
}

func edit(filename string, row [][]string) {
 f, err := os.Create(filename)
 if err != nil {
  panic(err)
 }
 defer f.Close()

 //防止亂碼
 f.WriteString("\xEF\xBB\xBF")
 w := csv.NewWriter(f)
 w.Write([]string{"ID", "name", "gender", "course", "score"})
 w.WriteAll(row)
 w.Flush()
}

func main() {
 row := join("1.csv", "2.csv")
 fmt.Println(row)
 edit("join.csv", row)
 fmt.Println("合并已完成!")
}

如何使用Go來合并兩個csv

如何使用Go來合并兩個csv

以上是“如何使用Go來合并兩個csv”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

武山县| 望谟县| 乌拉特前旗| 四川省| 高尔夫| 环江| 漯河市| 土默特右旗| 华安县| 靖边县| 开阳县| 利辛县| 巴塘县| 垣曲县| 长岛县| 曲松县| 麦盖提县| 阜阳市| 涡阳县| 大丰市| 柳州市| 且末县| 普兰县| 家居| 怀来县| 延边| 德钦县| 萨迦县| 商河县| 周口市| 乌拉特中旗| 双江| 河池市| 朔州市| 梁河县| 开化县| 司法| 长春市| 富源县| 通州区| 乐昌市|