go开发过程中如何 “读取或修改” 相关配置文件
如:读取 config.ini 文件中的配置信息
下面简单介绍 Go 操作 ini 文件
参考官方文档
下载安装
执行命名:go get gopkg.in/ini.v1
或者(如需更新请添加 -u 选项。)
执行命名:go get -u gopkg.in/ini.v1
加 -u 和不加 -u 参数的区别:加上 -u 可以利用网络来更新已有的代码包及其依赖包。
如果本地曾经已经下载过一个代码包,但是这个代码包又有更新了,那么这时候可以直接用 -u 标记来更新本地的对应的代码包。如果不加这个 -u 标记,执行 go get 一个已有的代码包,会发现命令什么都不执行。只有加了 -u 标记,命令会去执行 git pull 命令拉取最新的代码包的最新版本,下载并安装。
简单使用
import "gopkg.in/ini.v1" // 安装后,此行代码在使用 ini 时会自动引入
本地新建 my.ini 文件
文件中输入:
app_mode = development
[paths]
data = /home/git/grafana
上面代码解释说明如下:
没有操作分区,但有键值对:app_mode = development
app_mode:是键
development:是 app_mode 的值
有操作分区,有键值对:[paths] data = /home/git/grafana
[paths]:表示有一个操作分区 paths
data:是键
/home/git/grafana:是 data 的值
go 代码打开本地文件
cfg, err := ini.Load("my.ini")
go 代码读取操作(读取值)
cfg.Section("").Key("app_mode").String() // 没有操作分区时,Section("")参数是空字符串
cfg.Section("paths").Key("data").String() // 有操作分区时,Section("paths")参数是分区 paths
go 代码写入操作(写取值)
创建获取名为ip的分区
sec, err := cfg.NewSection("ip")
在配置分区中加入键“Intranet”,并设置值
_, err := sec.NewKey("Intranet", "127.0.0.1")
go 代码保存操作(写取值)
/将配置文件保存到电脑上 (如果本地没有ini文件,需要使用 cfg = ini.Empty() 创建空的配置对象
方式1:err = cfg.SaveToIndent("my.ini", "\t") // 键值对前面加缩进使用 \t
方式2:err = cfg.SaveTo("my.ini")