分享
  1. 首页
  2. 文章

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

qq5c9c828bc8d4b · · 4343 次点击 · · 开始浏览
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

go语言csv文件的读取

暂时未整理

package main
import (
 "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 = true
 row := []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 [][]string
 newContent = 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)
}

有疑问加站长微信联系(非本文作者)

本文来自:51CTO博客

感谢作者:qq5c9c828bc8d4b

查看原文:go语言csv文件的读取与写入

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

关注微信
4343 次点击
暂无回复
添加一条新回复 (您需要 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传

用户登录

没有账号?注册
(追記) (追記ここまで)

今日阅读排行

    加载中
(追記) (追記ここまで)

一周阅读排行

    加载中

关注我

  • 扫码关注领全套学习资料 关注微信公众号
  • 加入 QQ 群:
    • 192706294(已满)
    • 731990104(已满)
    • 798786647(已满)
    • 729884609(已满)
    • 977810755(已满)
    • 815126783(已满)
    • 812540095(已满)
    • 1006366459(已满)
    • 692541889

  • 关注微信公众号
  • 加入微信群:liuxiaoyan-s,备注入群
  • 也欢迎加入知识星球 Go粉丝们(免费)

给该专栏投稿 写篇新文章

每篇文章有总共有 5 次投稿机会

收入到我管理的专栏 新建专栏