Golang语言社区--Go操作CSV文件

大家好,我是Golang语言社区主编彬哥;今天给大家讲解一篇关于Go语言操作CSV文件的相关的。

读取CSV文件 如下:

读取的函数:

puck.csv

读取函数:

// globalData数据结构所在目录
package Global_Define
// csv配置表
var G_StCard2InfoBaseST map[string]*Card2InfoBase // 卡牌活动结构

// 卡牌活动结构
type Card2InfoBase struct {
	Card2ID       string // 卡牌的ID
	Card2Msg      string // 卡牌的描述
	Card2GameName string // 卡牌的地点
	Card2GameID   string // 策划看到的类型
	PicPath       string //  图片路径
	Type          string // 卡牌类型
}

--------------------------------------------------
package main

import (
	"项目目录/globalData"
	"encoding/csv"
	"fmt"
	"io/ioutil"
	"strconv"
	"strings"
)
	
// 获取卡牌的列表
func ReadCsv_ConfigFile_StCard2List_Fun() bool {
	// 获取数据,按照文件
	fileName := "puke.csv"
	fileName = "./csv/" + fileName
	cntb, err := ioutil.ReadFile(fileName)
	if err != nil {
		return false
	}
	// 读取文件数据
	r2 := csv.NewReader(strings.NewReader(string(cntb)))
	ss, _ := r2.ReadAll()
	sz := len(ss)

	// 循环取数据
	for i := 1; i < sz; i++ {

		Infotmp := new(Global_Define.Card2InfoBase)
		Infotmp.Card2ID = ss[i][0]
		Infotmp.Card2Msg = ss[i][1]
		Infotmp.Card2GameName = ss[i][2]
		Infotmp.Card2GameID = ss[i][3]
		Infotmp.PicPath = ss[i][4]
		Infotmp.Type = ss[i][5]
		Global_Define.G_StCard2InfoBaseST[Infotmp.Card2ID] = Infotmp
	}
	fmt.Println(Global_Define.G_StCard2InfoBaseST)
	return true
}

写入CSV 文件(仅仅是个简单的例子,如果有针对CSV文件复杂操作有问题的,可以直接留言,仅限私下交流):

package main

import (
	"encoding/csv"
	"fmt"
	"os"
)

func main() {
	f, err := os.Create("test.csv") //创建文件
	if err != nil {
		panic(err)
	}
	defer f.Close()

	f.WriteString("\xEF\xBB\xBF") // 写入UTF-8 BOM

	w := csv.NewWriter(f) //创建一个新的写入文件流
	data := [][]string{
		{"1", "中国", "23"},
		{"2", "美国", "23"},
		{"3", "bb", "23"},
		{"4", "bb", "23"},
		{"5", "bb", "23"},
	}
	w.WriteAll(data) //写入数据
	w.Flush()
}

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Golang语言社区

Golang语言社区--Go语言创建csv文件

大家好,我是Golang语言社区主编彬哥;今天给大家讲解一篇关于Go语言操作CSV文件的相关的。

1142
来自专栏xingoo, 一个梦想做发明家的程序员

【插件开发】—— 9 编辑器代码分块着色-高亮显示!

前文回顾: 1 插件学习篇 2 简单的建立插件工程以及模型文件分析 3 利用扩展点,开发透视图 4 SWT编程须知 5 SWT简单控件的使用与布局搭...

2646
来自专栏菩提树下的杨过

Silverlight:获取ContentTemplate中的命名控件

项目开发中遇到一个要求,需要将ComboBox右侧中的小三角箭头给去掉,通过Blend工具“编辑ComboBox的模板副本”得知,这是一个名为"BtnArrow...

2058
来自专栏Java与Android技术栈

为爬虫框架构建Selenium模块、DSL模块(Kotlin实现)

NetDiscover是一款基于Vert.x、RxJava2实现的爬虫框架。我最近添加了两个模块:Selenium模块、DSL模块。

1002
来自专栏跟着阿笨一起玩NET

Winfrom 如何安全简单的跨线程更新控件

来源:http://www.cnblogs.com/rainbowzc/archive/2010/09/29/1838788.html

651
来自专栏企鹅号快讯

水壶问题的人工智能解法

一、问题 现有8升、5升、3升的容器各一个,均无任何度量标记,其中8升的容器装满啤酒,其他两个为空。要求用上述容器倒来倒去,分成两份4升的啤酒。 二、分析 此问...

1827
来自专栏君赏技术博客

HQ移动20170317期周报

删除缓存:rm ~/Library/Caches/CocoaPods/search_index.json

1053
来自专栏魂祭心

原 结合源码分析 setTimeout /

3246
来自专栏Kubernetes

runC源码分析——namespace

runc/libcontainer/configs/config.go中定义了container对应的Namespaces。另外对于User Namespace...

3278
来自专栏编码小白

ofbiz实体引擎(九) 多租户

多租户在平台中是根据delegator不同操作不同的数据库 /** * @author 郑小康 * 设置完整的delegator 其可...

3264

扫码关注云+社区