go语言 最近遇到的问题总结

本文总结了使用`github.com/dlintw/goconf`和`github.com/larspensjo/config`库在Go语言中读取配置文件的方法,包括单独读取二级标题配置和兼容一级标题配置的技巧。还探讨了利用os包进行文件操作,特别是写文件,以及strconv进行类型强转,如int32与string的互转。此外,讨论了interface{}的使用和如何获取机器物理参数,以及如何在Go中执行shell命令。
摘要由CSDN通过智能技术生成

使用”github.com/dlintw/goconf” 与”github.com/larspensjo/config”读配置文件

首先应该下载包

go get "github.com/dlintw/goconf" --读取二级标题数据
go get "github.com/larspensjo/config" --读取一级标题数据,可兼容上个包

包会下载到 **$GOPATH/src** 路径下,否则默认下载到 **$GOROOT/src**下

导入包

    import (
        ""github.com/dlintw/goconf""
        "其他包"
        )

单独读取二级标题配置文件:

//此函数默认将配置文件当做字符串读取,类型转换需要在函数外部自己实现
func read_conf_log_file(name string, name1 string) (interface{}, error){
    c, err := goconf.ReadConfigFile("monitor.conf")
    checkErr(err)

    return c.GetString(name, name1)
}
    //调用函数 传入参数应为配置文件的一级标题和二级标题名
    log_size_warn, err := read_conf_log_file("log_file_size_warn", "size")

配置文件如下:

[mem]
mem_warn=10

[cpu]
cpu_warn=30

[disk]
disk_warn=10

[speed]
speed_warn=10
net_card=eth0

[log_file_size_warn]
size=10

[log]
log_path=/path/to/gotest/src/test_main/iwatch/1.conf
log_path2=/path/to/gotest/src/test_main/iwatch/2.conf
log_path3=/path/to/gotest/src/test_main/iwatch/3.conf
...

读取一级标题配置文件 (兼容上个包) –可用于同时读取多个未知的二级标题数据

/*
    该函数可一次直接读取一级标题下的二级标题
    再通过range方法迭代获得二级标题对应的每一个数据
    最后将以map[key1,:value1, key2:value2...]类型返回给外部
    key:二级标题 value:二级标题对应的数据
*/
func read_conf_log_file_map() (map[string]string, error){
    cfg, err := config.ReadDefault("/path/to/gotest/src/test_main/iwatch/monitor.conf")
    if err != nil {
        
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值