欢迎访问 生活随笔!

生活随笔

当前位置: 首页 >

go语言csv文件的读取与写入

发布时间:2023/12/20 34 豆豆
生活随笔 收集整理的这篇文章主要介绍了 go语言csv文件的读取与写入 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

go语言csv文件的读取

暂时未整理

package mainimport ("encoding/csv""fmt""io""log""os" )func main() {//准备读取文件fileName := "D:\\gotest\\src\\source\\test.csv"fs, err := os.Open(fileName)if err != nil {log.Fatalf("can not open the file, err is %+v", err)}defer fs.Close()r := csv.NewReader(fs)//针对大文件,一行一行的读取文件for {row, err := r.Read()if err != nil && err != io.EOF {log.Fatalf("can not read, err is %+v", err)}if err == io.EOF {break}fmt.Println(row)}//针对小文件,也可以一次性读取所有的文件//注意,r要重新赋值,因为readall是读取剩下的fs1, _ := os.Open(fileName)r1 := csv.NewReader(fs1)content, err := r1.ReadAll()if err != nil {log.Fatalf("can not readall, err is %+v", err)}for _, row := range content {fmt.Println(row)}//创建一个新文件newFileName := "D:\\gotest\\src\\source\\newfile.csv"//这样打开,每次都会清空文件内容//nfs, err := os.Create(newFileName)//这样可以追加写nfs, err := os.OpenFile(newFileName, os.O_RDWR|os.O_CREATE, 0666)if err != nil {log.Fatalf("can not create file, err is %+v", err)}defer nfs.Close()nfs.Seek(0, io.SeekEnd)w := csv.NewWriter(nfs)//设置属性w.Comma = ','w.UseCRLF = truerow := []string{"1", "2", "3", "4", "5,6"}err = w.Write(row)if err != nil {log.Fatalf("can not write, err is %+v", err)}//这里必须刷新,才能将数据写入文件。w.Flush()//一次写入多行var newContent [][]stringnewContent = append(newContent, []string{"1", "2", "3", "4", "5", "6"})newContent = append(newContent, []string{"11", "12", "13", "14", "15", "16"})newContent = append(newContent, []string{"21", "22", "23", "24", "25", "26"})w.WriteAll(newContent)}

转载于:https://blog.51cto.com/14263015/2402913

总结

以上是生活随笔为你收集整理的go语言csv文件的读取与写入的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。