[TOC]
go语言自带的有csv文件读取模块,看起来好像不错,今天玩玩,也算是系统学习go语言的一部分……^\_^
# 一、写csv文件
函数:
func NewWriter(w io.Writer) \*Writer
func (w \*Writer) Flush()
func (w \*Writer) Write(record \[\]string) (err os.Error)
func (w \*Writer) WriteAll(records \[\]\[\]string) (err os.Error)
具体见官网:[http://golang.org/pkg/csv/#NewWriter](http://golang.org/pkg/csv/#NewWriter)
其实写csv文件大可不必用这些函数,直接按照规则写入文件就行,不过这里有这些函数,还是写个demo,也方便我以后使用:
~~~
package main
import (
"csv"
"os"
"bytes"
"fmt"
)
func main(){
fileName := "2.csv"
buf := new(bytes.Buffer)
r2 := csv.NewWriter(buf)
for i:=0;i<10;i++ {
s := make([]string,3)
s[0] = "user id"
s[1] = "name"
s[2] = "depart"
r2.Write(s)
r2.Flush()
}
fmt.Println(buf)
fout,err := os.Create(fileName)
defer fout.Close()
if err != nil {
fmt.Println(fileName,err)
return
}
fout.WriteString(buf.String())
}
~~~
# 二、读csv文件
函数:
func NewReader(r io.Reader) \*Reader
func (r \*Reader) Read() (record \[\]string, err os.Error)
func (r \*Reader) ReadAll() (records \[\]\[\]string, err os.Error)
具体见官网:[http://golang.org/pkg/csv/#Reader.Read](http://golang.org/pkg/csv/#Reader.Read)
1、首先要解决的是读取文件的所有内容并存成字符串,这里用的是ioutil模块,具体代码如下:
~~~
package main
import (
"io/ioutil"
"fmt"
)
func main(){
b,err := ioutil.ReadFile("1.csv")
if err != nil {
panic(err.String())
}
//fmt.Println(b)
fmt.Printf("%s",string(b))
}
~~~
2、读取csv文件内容:
~~~
package main
import (
"fmt"
"csv"
"strings"
"io/ioutil"
)
func main(){
//fileName := "1.csv"
fmt.Printf("Input file name : ")
var fileName string
fmt.Scanf("%s",&fileName)
cntb,err := ioutil.ReadFile(fileName)
if err != nil {
panic(err.String())
}
r2 := csv.NewReader(strings.NewReader(string(cntb)))
ss,_ := r2.ReadAll()
//fmt.Println(ss)
sz := len(ss)
for i:=0;i<sz;i++{
fmt.Println(ss[i])
}
}
~~~
~~~
好,就这些了,希望对你有帮助
~~~
- 第1章 电脑操作篇
- 1.1 电脑高清壁纸下载地址
- 1.2 音乐外链在线获取
- 1.3 markdown,js等表格生成神器
- 1.4 在线使用文档,表格,演示文档
- 1.5 开发在线工具
- 1.5.1 toolbox
- 1.5.2 菜鸟工具
- 1.6 vs code远程调试
- 1.7 windows批处理命令
- 1.8 windows安装cygwin运行linux指令
- 1.9 windows下某些程序运行慢
- 1.10 win下为鼠标右键添加新项目
- 1.11 win上自己常用的开发软件
- 1.12 win下vscode配置
- 第2章 Electron 用前端技术开发跨平台桌面应用
- 2.1 介绍
- 2.2 入门链接地址
- 2.3 cnpm使用
- 第3章 Git使用
- 3.1 介绍
- 3.2 同步GitHub的基本使用方法
- 3.3 同步Gitee的基本使用方法
- 3.4 获取当前git分支
- 3.5 LF和CRLF换行的转换
- 第4章 HTML,CSS,JS
- 4.1 HTML速查列表
- 第5章 python使用
- 5.1 文件操作
- 5.2 一句话建立服务器
- 第6章 我的女友叫Linux
- 6.1 使用shell写俄罗斯方块
- 6.2 那些有趣的shell
- 6.2.1 40个有趣的LInux命令行
- 6.2.2 命令行下的网易云搜索播放器
- 6.2.3 从网上获取一条语句并显示
- 6.3 在linux上写汇编
- 6.4 在linux终端连接另一台linux
- 6.5 makefile文件的编写
- 6.6 deepin挂载远程文件夹到本地文件夹
- 6.7 本地lnux和远程linux进行文件拷贝
- 6.8 超好用的linux下的ssh管理工具(electerm)
- 6.9 那些不重要的技巧
- 6.10 linux文件加密
- 6.11 论文画图软件gnuplot
- 6.12 自定义mrun命令用于执行当前路径下的run文件
- 6.13 fish shell后台运行程序
- 第7章 在线工具收集
- 7.1 各种编程语言的在线编辑运行
- 7.2 html js 在线尝试
- 第8章 搭建自己的私有云盘
- 第9章 linux下的一些软件
- 9.1 remarkable--markdown文件轻量编辑器
- 9.2 gnuplot画图软件
- 9.3 Graphviz绘图(流程图,状态图)
- 第10章 TCL脚本编程
- 10.1 基础教程
- 10.2 在tcl脚本文件其他tcl脚本文件运行
- 10.3 在tcl脚本文件中调用bash/fish
- 10.4 TCL培训教程
- 10.5 tcl脚本参数传递
- 第11章 看云的使用
- 11.1 markdown添加公式
- 11.2 看云在linux本地编辑脚本
- 第12章 Go语言在linux下的使用
- 12.1 简介
- 12.2 调用自己的包
- 12.3 Go语言学习的资料
- 12.4 golang使用flag完成命令行解析
- 12.5 Golang文件操作大全
- 12.5.1 创建空文件
- 12.5.2 Truncate文件
- 12.5.3 得到文件信息
- 12.5.4 重命名和移动
- 12.5.5 删除文件
- 12.5.6 打开和关闭文件
- 12.5.7 检查文件是否存在
- 12.5.8 检查读写权限
- 12.5.9 改变权限、拥有者、时间戳
- 12.5.10 硬链接和软链接
- 12.5.11 复制文件
- 12.5.12 跳转到文件指定位置(Seek)
- 12.5.13 写文件
- 12.5.14 快写文件
- 12.5.15 使用缓存写
- 12.5.16 读取最多N个字节
- 12.5.17 文件追加内容
- 12.6 操作CSV文件
- 第13章 搜集资源的一些方法
- 13.1 电子书_电子课本
- 第14章 EndNote的使用
- 14.1 安装
- 14.2 文件检索