溫馨提示×

溫馨提示×

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

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

SDK協(xié)議EasyCVR如何通過Go語言讀取csv文件內(nèi)容

發(fā)布時間:2021-12-23 09:30:28 來源:億速云 閱讀:144 作者:柒染 欄目:互聯(lián)網(wǎng)科技

今天就跟大家聊聊有關(guān)SDK協(xié)議EasyCVR如何通過Go語言讀取csv文件內(nèi)容,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。

EasyCVR是TSINGSEE開發(fā)的視頻智能安防監(jiān)控平臺,支持通過調(diào)用API接口進(jìn)行二次開發(fā),同時也支持其他定制功能的開發(fā)。在EasyCVR的部分定制項目中,需要導(dǎo)入csv文件生成對應(yīng)的錄像上傳計劃,因此需要對csv文件的內(nèi)容進(jìn)行讀取。

SDK協(xié)議EasyCVR如何通過Go語言讀取csv文件內(nèi)容

一般csv文件和excel文件類似,不是一個個表格組成的數(shù)據(jù)。相對于excel文件來說,csv文件的格式更簡單,只要每個數(shù)據(jù)以“,”分隔開,逗號前后的數(shù)據(jù)就是兩個表格的數(shù)據(jù)。顯示如下:

SDK協(xié)議EasyCVR如何通過Go語言讀取csv文件內(nèi)容

實際Go語言對于csv文件一次性讀取的代碼文件為:

// 一次性讀取所有的數(shù)據(jù)
func ReadCsvFileAll(fileName string) ([][]string, error) {
   //針對小文件,一次性讀取所有的內(nèi)容
   fs, err := os.Open(fileName)
   if err != nil {
      return nil, err
   }
   defer fs.Close()
   r1 := csv.NewReader(fs)
   return r1.ReadAll()
}

以上代碼適合讀取小的csv文件,對于有的csv文件甚至?xí)_(dá)到數(shù)十萬條數(shù)據(jù),一次性讀取全部,會導(dǎo)致內(nèi)存空間大量占用,不適合一次性讀取,因此就需要一行行的讀取。代碼如下:

// 讀取 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語言憑借其精簡易學(xué)的特點一直是很多人的心頭好,同時,Go語言中友好的工具鏈也讓編程更加輕松。

看完上述內(nèi)容,你們對SDK協(xié)議EasyCVR如何通過Go語言讀取csv文件內(nèi)容有進(jìn)一步的了解嗎?如果還想了解更多知識或者相關(guān)內(nèi)容,請關(guān)注億速云行業(yè)資訊頻道,感謝大家的支持。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI