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年左右开始接触爬虫, ...
随机推荐
- PRAGMA AUTONOMOUS_TRANSACTION
转自 http://blog.csdn.net/pan_tian/article/details/7675800 这段时间遇到一个问题,程序里明明插入了一条记录,但在后边的一段Procedure中却查 ...
- JAVASE02-Unit01: API文档 、 字符串基本操作
API文档 . 字符串基本操作 文档注释 package day01; /** * 文档注释只能定义在三个地方: * 类,方法,常量 * * 文档注释是功能注释,用来说明功能作用 * 在类上使用的目的 ...
- Android 自定义spinner下拉框实现的实现
请支持原创:http://blog.csdn.NET/geniuseoe2012/article/details/8723702 说到Android下拉框spineer,框架中虽有现成的控件,但实际效 ...
- jq 截取字符串
var str="abcde";截取ab;str=str.substring(0,2);意思是从第一个字符开始截取两位: 一.函数:split() 功能:使用一个指定的分隔符把一个 ...
- winform 计算器
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...
- 用OOP设计以下场景。太阳发出太阳光,照射在墙壁上,在地面形成影子。
首先分析出有哪些实体类,太阳.太阳光.墙壁.地面.影子 然后分析太阳应该继承自发光体类.太阳光继承自光类.墙壁继承自物体类 地面是一个承载影子的容器.
- Kindle 推送教程:教你用电子邮箱推送电子书(Kindle伴侣)
Kindle 推送是什么意思?如何通过电子邮件附件推送?或许刚刚接触 Kindle 的朋友对这个概念不是很清楚,其实所谓 Kindle 推送是指亚马逊提供的一个"Kindle 个人文档服务& ...
- Secretary Problem
最好时机问题 n个值 前n/e都不选 然后取第一个大于前n/e个数中最大值的数 选中最大的概率为1/e
- zjuoj 3602 Count the Trees
http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3602 Count the Trees Time Limit: 2 Seco ...
- Android -- 仿ios上下反弹效果
1,前几天在一个app上看到了滑动反弹效果,觉得这个效果挺不错的,然后想自己来实现一下,在网上查了一下基本上都是大致的说了下思路,自己看了一下,决定把实现的思路来详细的写下来,先看一下我们实现的效果吧 ...