zoukankan      html  css  js  c++  java
  • 海康/大华SDK协议视频智能安防监控平台EasyCVR如何通过Go语言读取csv文件内容?

    EasyCVR是TSINGSEE青犀视频开发的视频智能安防监控平台,支持通过调用API接口进行二次开发,同时也支持其他定制功能的开发。在EasyCVR的部分定制项目中,需要导入csv文件生成对应的录像上传计划,因此需要对csv文件的内容进行读取。

    一般csv文件和excel文件类似,不是一个个表格组成的数据。相对于excel文件来说,csv文件的格式更简单,只要每个数据以“,”分隔开,逗号前后的数据就是两个表格的数据。显示如下:

    实际Go语言对于csv文件一次性读取的代码文件为:

    // 一次性读取所有的数据
    func ReadCsvFileAll(fileName string) ([][]string, error) {
       //针对小文件,一次性读取所有的内容
       fs, err := os.Open(fileName)
       if err != nil {
          return nil, err
       }
       defer fs.Close()
       r1 := csv.NewReader(fs)
       return r1.ReadAll()
    }
    
    

    以上代码适合读取小的csv文件,对于有的csv文件甚至会达到数十万条数据,一次性读取全部,会导致内存空间大量占用,不适合一次性读取,因此就需要一行行的读取。代码如下:

    // 读取 csv 文件的每一行
    func ReadCsvLine(fileName string) {
       fs, err := os.Open(fileName)
       if err != nil {
          fmt.Println("readError ", err)
       }
       defer fs.Close()
    
       r := csv.NewReader(fs)
       //针对大文件,一行一行的读取文件
       for {
          row, err := r.Read()
          if err != nil && err != io.EOF {
             fmt.Println("readError ", err)
          }
          if err == io.EOF {
             break
          }
          fmt.Println(row)
       }
    
    }
    
    

    GO语言凭借其精简易学的特点一直是很多人的心头好,同时,Go语言中友好的工具链也让编程更加轻松。TSINGSEE青犀视频视频智能安防监控平台的开发中很多都用到了这种小巧精致的编程语言,如果大家对我们的编译或者对我们的平台感兴趣,欢迎联系我们。

  • 相关阅读:
    ArcGIS进行视域分析及地形图制作
    ArcGIS进行容积率计算
    ArcGIS对进行数据拓扑修改
    如何打开软键盘
    China一词的由来
    名侦探柯南剧集数据统计分析
    常用QQ快捷键
    福利|GISer需知网站
    中国程序员最容易读错的单词
    截取数组
  • 原文地址:https://www.cnblogs.com/TSINGSEE/p/14512533.html
Copyright © 2011-2022 走看看