golang csv问题
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
其实写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
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])
}
}
golang csv问题的更多相关文章
- golang csv,xls,xlsx
要用到的包: "golang.org/x/text/encoding/simplifiedchinese" "golang.org/x/text/transform ...
- golang 导出CSV文件中文乱码的问题
golang 导出CSV文件中文乱码的问题 解决办法: 在csv文件的开头写入 UTF-8 BOM // 创建文件 dstf, err := os.Create("./data/" ...
- golang写入csv
package main import ( "encoding/csv" "fmt" "os" ) func main() { file, ...
- 【Golang】基础-操作 csv 文件
1. csv plugins,自带极简 1.1 写数据到csv文件 知识点:encoding/csv 库的 Write 方法使用[]string的切片格式追加方式写入数据 1.1.1 追加写入 pac ...
- [Golang]Go Packages
---------------------------------------------------------------------------------------------------- ...
- Go语言(golang)开源项目大全
转http://www.open-open.com/lib/view/open1396063913278.html内容目录Astronomy构建工具缓存云计算命令行选项解析器命令行工具压缩配置文件解析 ...
- Golang爬虫示例包系列教程(一):pedaily.com投资界爬虫
Golang爬虫示例包 文件结构 自己用Golang原生包封装了一个爬虫库,源码见go get -u -v github.com/hunterhug/go_tool/spider ---- data ...
- [转]Go语言(golang)开源项目大全
内容目录 Astronomy 构建工具 缓存 云计算 命令行选项解析器 命令行工具 压缩 配置文件解析器 控制台用户界面 加密 数据处理 数据结构 数据库和存储 开发工具 分布式/网格计算 文档 编辑 ...
- Golang 网络爬虫框架gocolly/colly 四
Golang 网络爬虫框架gocolly/colly 四 爬虫靠演技,表演得越像浏览器,抓取数据越容易,这是我多年爬虫经验的感悟.回顾下个人的爬虫经历,共分三个阶段:第一阶段,09年左右开始接触爬虫, ...
随机推荐
- js鲸鱼
<!DOCTYPE html> <html lang="en" xmlns="http://www.w3.org/1999/xhtml"> ...
- 【五子棋AI循序渐进】——多线程搜索
关于多线程搜索,有很多方法来实现,很多文章推荐基于MTD(F)的方式.好处不言而喻,不过我的程序中采用的是基于PVS的多线程搜索.实现起来主要是这几个方面问题需要解决: 1.置换表的互斥访问. 2.局 ...
- momentjs 求小时差异
momentjs 使用 var now1 = moment( moment().unix()*1000); //获取unix时间戳 需要*1000 var befor_time = moment(1 ...
- C#的默认可访问性级别
1.在namespace中的类.接口默认是internal类型的,也可以显示的定义为public类型,不允许是其他访问类型.2.在一个类里面,属性和方法默认是private的,可以显示的定义为publ ...
- 转:"在已损坏了程序内部状态的XXX.exe 中发生了缓冲区溢出"的一种可能原因
我的问题跟原作者的问题差不多.头文件和DLL不匹配导致的. 原文链接:http://blog.csdn.net/u012494876/article/details/39030887 今天软件突然出现 ...
- RDIFramework.NET ━ 9.12 表字段管理 ━ Web部分
RDIFramework.NET ━ .NET快速信息化系统开发框架 9.12 表字段管理 -Web部分 表(字段)综合管理模块主要功能是对数据表本身,表的各个字段做相应的控制,具体有以下功能: ...
- AJAX-----05XMLHttpRequest对象的用post方式进行ajax请求
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- Openstack安全规则说明
openstack的安全规则,主要是在网络控制器,nova-network中进行的端口限制,所以我们需要对规则进行定制. 定制通用安全组规则 通用安全组规则主要包括2个,1是支持ping的icmp协议 ...
- 微信开发那点事(No.001)
MXS&Vincene ─╄OvЁ &0000024─╄OvЁ MXS&Vincene MXS&Vincene ─╄OvЁ:今天很残酷,明天更残酷,后天很美好, ...
- java中的乱码问题
1如果使用的tomcat服务器,在server.xml中Connector 标签后加 URIEncoding="UTF-8": 2使用web过滤器: (1).新建一个SetChar ...