zoukankan      html  css  js  c++  java
  • 2.6 Go 读取CSV

    Go读取CSV文件,其内容被转换成字符串数组

    package main
    
    import (
        "encoding/csv"
        "fmt"
        "io/ioutil"
        "log"
        "strings"
        "io"
    )
    
    //读取CSV前两列到map中
    func CSVToMap(filePath string) map[string]string{
        dat, err := ioutil.ReadFile(filePath)
        if err != nil {
            log.Fatal(err)
        }
        r := csv.NewReader(strings.NewReader(string(dat[:])))
        
        record, err := r.ReadAll()  //record为二维数组
        if err != nil {
            panic("读取文件失败")
        }
        //fmt.Println(record)
        
        if r.FieldsPerRecord < 1 {
            panic("CSV不足两列")
        }
        
        mapCsv := make(map[string]string)
        //以csv文件第一列为KEY,第二列为value,转换为map;重复时后者覆盖前者
        for _, val := range record {
            mapCsv[val[0]] = val[1]
        }
        //fmt.Println(mapCsv)
        return mapCsv
    }
    
    //输出CVS文件的每一行
    func readCSV(filePath string){
        dat, err := ioutil.ReadFile(filePath)
        if err != nil {
            log.Fatal(err)
        }
        r := csv.NewReader(strings.NewReader(string(dat[:])))
        
        for {
            record, err := r.Read()
            
            if err == io.EOF {
                break
            }
            if err != nil {
                log.Fatal(err)
            }
            for i:= 0;i<r.FieldsPerRecord;i++ {
                fmt.Println(i,record[i])
            }
        }
    }
    
    func main() {
        filePath := "/usr/local/automng/src/goapp/src/tools/cmd2.csv"
        readCSV(filePath)
        mapCsv := CSVToMap(filePath)
        df := mapCsv["common"]
        fmt.Println(df)
    }
  • 相关阅读:
    jQuery火箭图标返回顶部代码
    jQuery火箭图标返回顶部代码
    jQuery火箭图标返回顶部代码
    jQuery火箭图标返回顶部代码
    C# List分组
    Win7安装VS2019
    C# Lambda Left Join AND Group by Then Sum
    RSA加密解密,Base64String
    Ion-select and ion-option list styling 自定义样式
    Docker镜像
  • 原文地址:https://www.cnblogs.com/perfei/p/10641941.html
Copyright © 2011-2022 走看看