博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
go语言csv文件的读取与写入
阅读量:6366 次
发布时间:2019-06-23

本文共 1806 字,大约阅读时间需要 6 分钟。

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 = 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)}

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

你可能感兴趣的文章
关于Boolean类型做为同步锁异常问题
查看>>
TestLink运行环境:Redhat5+Apache2.2.17+php-5.3.5+MySQL5.5.9-1
查看>>
Get File Name from File Path in Python | Code Comments
查看>>
显示本月每一天日期
查看>>
[转]java 自动装箱与拆箱
查看>>
NET的堆和栈04,对托管和非托管资源的垃圾回收以及内存分配
查看>>
think in coding
查看>>
IdHttpServer实现webservice
查看>>
HTML的音频和视频
查看>>
Unsupported major.minor version 52.0
查看>>
面对对象之差异化的网络数据交互方式--单机游戏开发之无缝切换到C/S模式
查看>>
优酷网架构学习笔记
查看>>
把HDFS里的json数据转换成csv格式
查看>>
WEEX-EROS | 集成并使用 bindingx
查看>>
Spring5源码解析-Spring中的异步和计划任务
查看>>
广州牵引力来告诉你学编程先学什么语言好?
查看>>
广州牵引力总结初学者怎样学好UI设计?
查看>>
使用Metrics方法级远程监控Java程序
查看>>
Spring核心系列之Bean的生命周期
查看>>
VasSonic源码之并行加载
查看>>