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 条评论
登录 后参与评论

相关文章

来自专栏GIS讲堂

Arcgis API for Android之GPS定位

先说说写这篇文章的原因吧,在群内讨论的过程中,有人提到了定位的问题,刚好,自己以前在做相关工作的时候做过相关的东西,所以就总结一下,给大家共享出来,由于本人水平...

883
来自专栏一名合格java开发的自我修养

MapReduce中map并行度优化及源码分析

  一个job的map阶段并行度由客户端在提交job时决定,而客户端对map阶段并行度的规划的基本逻辑为:将待处理数据执行逻辑切片(即按照一个特定切片大小,将待...

852
来自专栏魂祭心

原 结合源码分析 setTimeout /

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

Silverlight:获取ContentTemplate中的命名控件

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

1928
来自专栏Golang语言社区

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

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

1042
来自专栏Java成神之路

Java企业微信开发_07_JSSDK多图上传

 所有的JS接口只能在企业微信应用的可信域名下调用(包括子域名),可在企业微信的管理后台“我的应用”里设置应用可信域名。这个域名必须要通过ICP备案,不然jss...

802
来自专栏小灰灰

spring-boot & zxing 搭建二维码服务

使用zxing提供二维码生成解析服务 搭建一个二维码的生成 & 解析服务, 使用java web对外提供http调用,返回base64格式的二维码图片 1. ...

9586
来自专栏GIS讲堂

excel中提取中文拼音

概述:在工作时,有时候会用到汉语拼音,本文讲述如何在Excel中通过vba程序提取汉字的拼音。

883
来自专栏九彩拼盘的叨叨叨

HanSON是个什么鬼

做Web开发的应该都或多或少知道JSON这东东。我们经常会用JSON文件来做为配置文件,如package.json,bower.json。但JSON有不少让人不...

391
来自专栏君赏技术博客

HQ移动20170317期周报

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

1003

扫码关注云+社区