您好,登錄后才能下訂單哦!
今天就跟大家聊聊有關(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)行讀取。
一般csv文件和excel文件類似,不是一個個表格組成的數(shù)據(jù)。相對于excel文件來說,csv文件的格式更簡單,只要每個數(shù)據(jù)以“,”分隔開,逗號前后的數(shù)據(jù)就是兩個表格的數(shù)據(jù)。顯示如下:
實際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è)資訊頻道,感謝大家的支持。
免責(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)容。