首页 > 其他分享 >go-ini配置文件操作

go-ini配置文件操作

时间:2024-03-05 14:00:28浏览次数:15  
标签:string 配置文件 cfg Section ini Key mysql go

go-ini是golang ini文件操作库,也兼容其他格式,包括但不限于 my.cnf、.gitconfig

使用三方库 "gopkg.in/ini.v1"

ini文件格式语法

; 注释使用分号
; ini文件语法

env = test


; [] 分区符
[mysql]
Host     = 127.0.0.1
Port     = 3306
User     = root
Password = 123456
Database = gin

获取ini数据

import (
	"fmt"
	"gopkg.in/ini.v1"
)

func main() {

	// 加载指定路径的文件,返回文件对象和err
	cfg, err := ini.Load("./conf/app.ini")

	if err != nil {
		fmt.Println("加载失败")
	}
	// Section传入分区名字,如果没有分区就传入空字符串,表示从根获取
	// 获取根下的 env字段,默认类型是*ini.Key
	cfg.Section("").Key("env") // test

	// 获取根下的 env字段,并将获取到的结果转换为字符串
	cfg.Section("").Key("env").String()
	
	// 获取mysql分区的host字段,以string的类型
	cfg.Section("mysql").Key("host").String()
}

写入/修改ini文件数据

cfg, _ := ini.Load("./conf/app.ini")

	// 给根分区 写入 version = v1
	cfg.Section("").Key("version").SetValue("v1")

	// 修改mysql分区的host
	cfg.Section("mysql").Key("host").SetValue("0.0.0.0")

	// 保存
	cfg.SaveTo("./conf/app.ini")

将ini数据映射到结构体

import (
	"fmt"
	"gopkg.in/ini.v1"
)

type Mysql struct {
	// 结构体字段开头必现大写,并且ini的字段也需要是大写
	Host     string
	Port     int
	User     string
	Password string
	Database string
}

func main() {
	var mysqlConf = new(Mysql)
	cfg, _ := ini.Load("./conf/app.ini")
	err := cfg.Section("mysql").MapTo(mysqlConf)
	fmt.Println(err)
	fmt.Print(mysqlConf.Host)
}

标签:string,配置文件,cfg,Section,ini,Key,mysql,go
From: https://www.cnblogs.com/Mickey-7/p/18053910

相关文章

  • 使用go写的etcd转发
    背景:因为公司中的机器比较老。我们的云上监控规定,使用的token的方式来监控,所以无法监控我们的etcd集群,我这里提供的一个etcd数据转发功能,能让监控到etcd集群packagemainimport( "crypto/tls" "crypto/x509" "fmt" "io" "net/http" "os" "sync" "......
  • 使用go写的一个api接口
    记录一下使用go写的一些脚本packagemainimport( "encoding/json" "fmt" "log" "net/http" "os" "os/exec" "strconv" "strings" "sync" "time")var( requestCo......
  • resurfaceio gor linux 二进制包
    resurfaceio的gor是对于开源版本的修改(比如开启了企业特性,同时添加了对于resurfaceiohttpoutput的支持),为了方便对于linux系统的使用我拉取了官方镜像,将二进制文件放到github了https://github.com/rongfengliang/resurfaceio-gor支的命令 Gorisasimpleht......
  • 寶可夢Pokemon Go虛擬搖桿iOS/Android免費下載
    PokemonGo仍然是迄今為止最成功的手機遊戲之一。這麼多年過去了,這款遊戲讓玩家以不同的方式參與其中。也許這款遊戲最大的吸引力在於其基於位置的設計,要求你去散步並將相機對準寶可夢。這是一種有趣的方法,但在某些情況下,它也可能是遊戲的主要限制。如果你不能出去,你就不能玩......
  • .NET Core连接MongoDB数据库
    MongoDB是一个非关系型数据库,它以文档形式存储数据,具有高性能、可扩展和灵活的特点。在.NETCore中使用MongoDB驱动程序可以很方便地连接和操作MongoDB数据库。本文将介绍如何在.NETCore项目中连接MongoDB数据库,并提供一些常用的操作示例。安装MongoDB驱动程序在.NETCore项目中......
  • Django 中models定义字段类型方法及参数说明
    字段类型定义方法:方法名功能说明AutoField()定义从1开始逐次自增1的整数类型字段,如果模型里没有显示定义该属性,Django会自动将该字段增加到新表结构里。默认情况下,该字段是,主键字段BigAutoField()定义64位自增整数类型字段,功能类似于AutoField(),唯一的区......
  • 由Django框架分析WSGI
    下面我们以django为例,分析一下wsgi的整个流程djangoWSGIapplicationWSGIapplication应该实现为一个可调用iter对象,例如函数、方法、类(包含**call**方法)。需要接收两个参数:一个字典,该字典可以包含了客户端请求的信息以及其他信息,可以认为是请求上下文,一般叫做environment(编......
  • Go - how the GC works
       ......
  • Go - profiling
           ......
  • Tomcat 的组成结构和主配置文件Server.xml详解
    Tomcat的组成结构和主配置文件Server.xml详解参考:《TOMCAT与JAVAWEB开发技术详解第3版》https://www.jianshu.com/p/2789af11299fTomcat本身由一系列可配置的组件构成,其中核心组件是Servlet容器组件,它是所有其他Tomcat组件的顶层容器,用<CATALINA_HOME>表示Tomca......