Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >每日一库:ini文件读取

每日一库:ini文件读取

作者头像
孟斯特
发布于 2023-10-19 09:03:23
发布于 2023-10-19 09:03:23
45000
代码可运行
举报
文章被收录于专栏:code人生code人生
运行总次数:0
代码可运行

在 Go 语言开发中,读取和解析配置文件是一个常见的任务。INI 格式是一种简单而常见的配置文件格式,它由多个部分组成,每个部分包含键值对,用于配置应用程序的各种属性。本文将介绍如何在 Go 语言中使用 INI 格式的配置文件。

INI 配置文件的基本结构

INI 配置文件由多个部分组成,每个部分可以包含零个或多个键值对。通常,INI 配置文件的结构如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[section1]
key1 = value1
key2 = value2

[section2]
key3 = value3
key4 = value4

在上面的示例中,有两个部分section1section2,每个部分都包含一些键值对。键值对中的键和值之间使用等号=分隔。

使用 Go 语言解析 INI 配置文件

要在 Go 语言中解析 INI 配置文件,我们可以使用第三方库,如 github.com/go-ini/ini。首先,确保你已经安装了该库,可以使用以下命令来安装:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
go get gopkg.in/ini.v1

然后,你可以使用以下示例代码来读取和解析 INI 配置文件:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
package main

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

func main() {
    // 加载 INI 配置文件
    cfg, err := ini.Load("config.ini")
    if err != nil {
        fmt.Printf("无法加载配置文件: %v", err)
        return
    }

    // 读取配置文件中的值
    section := cfg.Section("section1")
    key1 := section.Key("key1").String()
    key2 := section.Key("key2").String()

    fmt.Printf("section1.key1 = %s\n", key1)
    fmt.Printf("section1.key2 = %s\n", key2)
}

在这个示例中,我们首先导入 gopkg.in/ini.v1 包,并使用 ini.Load 函数加载了一个名为 "config.ini" 的 INI 配置文件。然后,我们使用 SectionKey 方法来获取特定部分和键的值。

创建和修改 INI 配置文件

要创建和修改 INI 配置文件,你可以使用 ini.File 对象。以下是一个示例:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
package main

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

func main() {
    // 创建一个新的 INI 配置文件
    cfg := ini.Empty()

    // 创建一个部分并添加键值对
    section := cfg.NewSection("section1")
    section.NewKey("key1", "value1")
    section.NewKey("key2", "value2")

    // 保存配置到文件
    if err := cfg.SaveTo("config.ini"); err != nil {
        fmt.Printf("无法保存配置文件: %v", err)
        return
    }

    fmt.Println("配置文件已保存")
}

在这个示例中,我们首先创建一个新的 ini.File 对象,然后添加一个部分和键值对,最后使用 SaveTo 方法将配置保存到名为 "config.ini" 的文件中。

声明:本作品采用署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)[1]进行许可,使用时请注明出处。 Author: mengbin[2] blog: mengbin[3] Github: mengbin92[4] cnblogs: 恋水无意[5]


References

[1] 署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0): https://creativecommons.org/licenses/by-nc-sa/4.0/deed.zh [2] mengbin: mengbin1992@outlook.com [3] mengbin: https://mengbin.top [4] mengbin92: https://mengbin92.github.io/ [5] 恋水无意: https://www.cnblogs.com/lianshuiwuyi/

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-10-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 孟斯特 微信公众号,前往查看

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

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Go每日一库之4:go-ini
ini 是 Windows 上常用的配置文件格式。MySQL 的 Windows 版就是使用 ini 格式存储配置的。
luckpunk
2023/09/12
3420
gin博客项目复盘--01配置文件使用
gin 文档 https://gin-gonic.com/zh-cn/docs/ 初始化gin项目 设置 go modGOPROXY=https://goproxy.cn,direct go mod init projectName 配置 go build 安装 gingo get -u ginhub.com/gin-gonic/gin#-u 如果存在则更新 gin目录框架 配置文件的使用 我们使用 .ini 来作为网站的配置文件 文档地址:https://ini.unknwon.io/docs/
微客鸟窝
2022/11/07
4480
gin博客项目复盘--01配置文件使用
配置文件格式 INI 快速上手
INI 的全称是 Initialization,即为初始化文件,最早是 Windows 系统配置文件所采用的格式。
恋喵大鲤鱼
2024/07/22
4780
Go组件学习:如何读取ini配置文件
运行后即可读取到username的值,上文中的Section有什么作用呢?我们在配置文件中加入以下配置
平也
2020/04/03
1.5K0
5.Go语言之配置文件读取学习记录
描述: 作为开发者相信对应用程序的配置文件并不陌生吧,例如 Java Spring Boot 里的 class 目录中程序配置,当然go语言相关项目也是可以根据配置文件的格式内容进行读取的,常规的配置文件格式有 json、ini、yaml (个人推荐)、properties 等,我们可以使用其为程序配置一些初始化的可变参数,例如 数据库字符串链接以及认证密码等等。
全栈工程师修炼指南
2023/05/03
1.2K0
每日一库:ETCD in go
ETCD 是一个开源的、高可用的键值存储系统,它被广泛用于配置管理和服务发现。ETCD 使用 Raft 算法来保证数据的强一致性和高可用性。它是 Kubernetes 集群的核心组件之一,用于存储集群配置和状态信息。
孟斯特
2023/10/16
3380
每日一库:ETCD in go
Git 项目推荐 | Go 语言读写 INI 文件工具包
原文 http://git.oschina.net/Unknown/ini 主题 Git Go语言 本包提供了 Go 语言中读写 INI 文件的功能。 功能特性 支持覆盖加载多个数据源( []byte 或文件) 支持递归读取键值 支持读取父子分区 支持读取自增键名 支持读取多行的键值 支持大量辅助方法 支持在读取时直接转换为 Go 语言类型 支持读取和 写入 分区和键的注释 轻松操作分区、键值和注释 在保存文件时分区和键值会保持原有的顺序 下载安装 使用一个特定版本: go get gopkg.in/in
李海彬
2018/03/20
5.9K0
GoLang实现google authenticator的CLI工具
两步认证在很多验证中都要使用。如果在手机客户端上,如果使用电脑,每次都要拿出手机,手动输入。还要担心会过时。效率不是很高。
若与
2018/08/03
1.6K0
GoLang实现google authenticator的CLI工具
Go 每日一库之 dig
今天我们来介绍 Go 语言的一个依赖注入(DI)库——dig。dig 是 uber 开源的库。Java 依赖注入的库有很多,相信即使不是做 Java 开发的童鞋也听过大名鼎鼎的 Spring。相比庞大的 Spring,dig 很小巧,实现和使用都比较简洁。
用户7731323
2020/09/08
1.5K0
milvus的db和collection信息查询
attu是一个非常好的管理milvus的图形化web工具。有时候不方便使用的时候可以使用API进行操作。
melodyshu
2023/12/27
6660
每日一库:memcache
Memcache 是一个高性能、分布式的内存缓存系统,常用于缓存数据库查询结果、API调用结果、页面内容等,以提升应用程序的性能和响应速度。下面详细介绍一些 Memcache 的特点和使用方式:
孟斯特
2023/10/16
3310
每日一库:memcache
如何读取yaml,json,ini等配置文件【Golang 入门系列九】
本文转载自如何读取yaml,json,ini等配置文件【Golang 入门系列九】 前面已经讲过一些Go语言的基础知识,感兴趣的朋友可以先看看之前的文章。https://www.cnblogs.com/zhangweizhong/category/1275863.html。
ccf19881030
2021/01/04
2.3K0
每日一库:FreeCache简介
FreeCache 是一个用于 Go 语言的内存缓存库,旨在提供高性能的缓存解决方案。它可以在应用程序内存中存储键值对,用于加速访问频繁的数据,如数据库查询结果、计算结果等。以下是 FreeCache 的一些特点和使用方法的详细介绍:
孟斯特
2023/10/16
5780
每日一库:FreeCache简介
每日一库:BigCache简介
BigCache 是 Go 语言中的一个高性能内存缓存库,专注于提供快速、高吞吐量的缓存解决方案。与许多其他缓存库不同,BigCache 设计用于减少内存分配和垃圾回收的开销,从而在处理大量数据时提供出色的性能。以下是 BigCache 的一些特点和使用方法的详细介绍:
孟斯特
2023/10/16
6520
每日一库:BigCache简介
如何读取yaml,json,ini等配置文件【Golang 入门系列九】
前面已经讲过一些Go语言的基础知识,感兴趣的朋友可以先看看之前的文章。https://www.cnblogs.com/zhangweizhong/category/1275863.html。
架构师精进
2019/07/25
5.5K0
接口测试框架开发实践5:配置文件读取
配置管理这块主要是管理一些环境相关的配置,例如各个环境的域名、数据库连接信息等。而存储这些配置信息的载体一般选择yaml/properties、ini/cfg。yaml可以适用于Java/Python测试框架,ini通常用于Python的测试框架。本文讲解一下这两种配置信息载体的配置格式与解析方法。
互联网金融打杂
2022/08/01
2300
maps in Go 1.21
Go 1.21中新增的 maps包中定义了一系列非常有用的函数,用于处理任意类型的 map。
孟斯特
2023/10/19
1500
maps in Go 1.21
LevelDB:轻量级高性能键-值存储引擎
LevelDB是一种快速的键-值存储库,由Google开发,用于提供高性能的数据持久性存储。它通常被用作支持各种应用程序的底层数据库引擎,包括分布式数据库、区块链、分布式文件系统等。在本文中,我们将深入介绍LevelDB的核心概念、用途、特点以及如何在Go编程语言中使用LevelDB。
孟斯特
2023/10/19
1.4K0
LevelDB:轻量级高性能键-值存储引擎
C#读写INI文件的最简方法
INI文件,全称为Initialization File(初始化文件),是一种传统的文本型配置文件格式,广泛应用于Windows操作系统及早期应用程序中,用于存储软件的各项设置和参数。尽管现代开发中XML、JSON或更现代的配置格式如YAML等逐渐占据主流,但INI文件凭借其简洁明了的结构和易于人类阅读与编辑的特点,在特定场景下仍然具有不可替代的价值。本文将聚焦于C#语言环境下,介绍如何以最简化的方式实现INI文件的读写操作。
郑子铭
2024/05/11
1.6K0
C#读写INI文件的最简方法
Redis中的string
在Redis中,字符串(String)是最简单的数据结构之一,但也是最为灵活和多用途的。下面详细介绍 Redis 中的字符串数据结构:
孟斯特
2024/01/23
1300
Redis中的string
相关推荐
Go每日一库之4:go-ini
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验