.ini配置文件介绍与解析库使用

news/2024/2/27 20:37:15

【前言】

        ini 文件是英文"Initialization"的缩写,即初始化文件。它用来配置特定应用软件以实现对程序初始化或进行参数设置。.ini文件由节(section)、键(key)、值(value)三种模块构成。在windows系统/嵌入式软件中有很多XXX.ini文件,例如System32.ini和Config.ini。

【ini文件格式】

[Setting]

INIT_FLAG=0;

VOLUME=1;

LANGUAGE=1;

        其中,[Setting]叫做节,INIT_FLAG在=号左边叫做键,0在=号右边叫做值。

【读/写 ini文件实现方式】

        作为系统支撑软件或上层应用软件,需要实现参数可配置,提高软件的二次可利用率。本文将依次使用C语言/Python语言分别进行简单介绍它们的实现与读写原理。首先,介绍C语言环境下读写ini文件的方式。        

【C语言中INI解析库】

        C语言中,可以使用INI解析库作为INI配置文件的解析工具,使用者只需在程序代码中添加头文件iniparser.h。INI解析库提供给我们用户最关心的两大方法,设置方法和参数获取方法。

#define CONFIG_NAME "Config.ini"
/* parase Config.ini file to get param */
dictionary *Config_ini = NULL;
/* reload Config.in file */
Config_ini = iniparser_load(CONFIG_NAME);
if(NULL == Config_ini){printf("cannot't parse %s file\n",CONFIG_NAME);return -1;
}
/* dictionary dump save other files pointer */
iniparser_dump(Config_ini,stderr);
/* get item value by Create_ini file */
Init_flag = iniparser_getint(Config_ini,"Setting:INIT_FLAG",-1);
Volume_flag = iniparser_getint(Config_ini,"Setting:VOLUME",-1);
English_flag = iniparser_getint(Config_ini,"Setting:LANGUAGE",-1);
printf("Init_flag:%d\n",Init_flag);
printf("Volume_flag:%d\n",Volume_flag);
printf("English_flag:%d\n",English_flag);
/* modified value in INIT_FLAG item */
iniparser_set(Config_ini,"Setting:INIT_FLAG","1");

        本实例在Linux环境下进行编译后,输出结果:

         更多功能,可以参考INI解析库中的函数片段,仔细寻找会有意外收获。如果需要将INI解析库放到Windows环境中运行,可以直接将iniparser.h包含进工程项目中,然后进行编译构建即可。

【python中configparser模块】

        在当前python3环境中,configparser是用来解析ini配置文件的解析器。其作用就是使用模块中的RawConfigParser()、ConfigParser()、SafeConfigParser()这三个方法(任选一种),创建一个对象使用对象的方法对指定的配置文件做增删改查操作。


## 读取ini配置文件信息
import os
import configparserconf = configparser.ConfigParser() # 类的实例化curpath = os.path.dirname(os.path.realpath(__file__))
path = os.path.join(curpath,'read.ini')conf.read(path,encoding="utf-8")
value = conf['select']['url']
print("通过read方法取得的值为:",value)
## 写入ini 配置文件
import os
import configparserconf = configparser.ConfigParser() # 类的实例化curpath = os.path.dirname(os.path.realpath(__file__))
path = os.path.join(curpath,'read.ini')conf.add_section('login') # 添加一个新的section
conf.set('login','username','admin')
conf.set('login','password','123123')   # 往配置文件写入数据
conf.write(open(path,'a'))  # 保存数据

        上述功能实现读取ini配置文件的信息,具体的代码逻辑本文不再赘述,只是提供一种脚本化的解析库策略。相关代码已放到平台的download页面,自行下载试用即可。

【总结】

        本文从ini配置文件在软件配置策略的角度出发,分别介绍了ini配置文件的格式,在C语言、python语言中的使用策略。最后,分别针对两种语言给出了代码片段。使用ini解析库功能,可以快速实现功能的开发和软件参数调节,实现一套软件多场景适用。

参考信息:

[1] 分享一个好用的C语言.ini文件的解析库, 嵌入式应用研究院, 2020-01-08.

[2] 了解Python之ini配置文件详解, 51Testing软件测试网, 2022-08-31.


http://www.ppmy.cn/news/210159.html

相关文章

日志框架——Log4j2

日志框架——Log4j2 日志框架Log4j21. 概述2. Log4j2主要由几个重要的组件构成:3.项目中使用3.1 引入相关依赖pom.xml3.2 加入日志配置文件src/main/resources/log4j2.xml3.3 测试 日志框架Log4j2 1. 概述 Apache Log4j2是一个开源的日志记录组件,使用非常的广泛。…

LeetCode知识点总结 - 812

LeetCode 812. Largest Triangle Area 考点难度ArrayEasy 题目 Given an array of points on the X-Y plane points where points[i] [xi, yi], return the area of the largest triangle that can be formed by any three different points. Answers within 10^-5 of the …

沧田 DT812K 打印机驱动

沧田 DT812K 打印机驱动是官方提供的一款打印机驱动,本站收集提供高速下载,用于解决打印机与电脑连接不了,无法正常使用的问题,本动适用于:Windows XP / Windows 7 / Windows 8 / Windows 10 32/64位操作系统。有需要的…

LeetCode: 812. 最大三角形面积

文章目录 一. 题目1. 链接2. 框架3. 描述4. 示例5. 数据范围 二. 解题1. 思路2. 复杂度3. 源码4. 考察 一. 题目 1. 链接 题目链接:LeetCode: 812. 最大三角形面积 2. 框架 c代码框架: class Solution { public:double largestTriangleArea(vector&…

spark 实现K-means算法

spark 实现K-means算法 package kmeans; import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayList;. impo…

k1075停运吗_【暴雨致沪昆娄底区段多趟列车停运,广大旅客应随时关注信息】...

湖南境内,持续多天的强降雨还没有停止,沪昆线娄底车务段辖内的多个区段遭遇水害,雨量超警戒水位值,为确保旅客和列车行车安全,铁路部门对部分线路进行封锁,途经的多趟列车晚点或停运(具体车次附后)&#xf…

812. 最大三角形面积

给定包含多个点的集合,从其中取三个点组成三角形,返回能组成的最大三角形的面积。 示例: 输入: points [[0,0],[0,1],[1,0],[0,2],[2,0]] 输出: 2 解释: 这五个点如下图所示。组成的橙色三角形是最大的,面积为2。class Solution {public do…

LeetCode —— 812 最大三角形面积

问题描述 给定包含多个点的集合,从其中取三个点组成三角形,返回能组成的最大三角形的面积。 示例: 输入: points [[0,0],[0,1],[1,0],[0,2],[2,0]] 输出: 2 解释: 这五个点如下图所示。组成的橙色三角形是最大的,面积为2。 来源&#xff…

k1075停运吗_列车停运计划

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 7月14日凌晨开始,受湘西北地区持续暴雨影响,沪昆铁路、渝怀铁路、焦柳铁路部分区段发生局部溜坍和泥石流现象。铁路部门在线路巡查过程中及时发现了险情并第一时间启动应急预案,临时封锁线路&am…

LeetCode 812. 最大三角形面积

写在前面: 三个for循环暴力求解,用到了高中学过的海伦公式,吐槽一下力扣C测试点又bug了,本地执行代码过了测试点,然后提交平台给我报错。。。这种水题害我调试半天,还是改点代码用JS写一把过的 这是我的 力扣github仓…

大顶堆和小顶堆的理解

文章目录 前言一、大顶堆和小顶堆是什么?二、使用场景1、从序列中选择最大的K个数(小顶堆)2、从序列中选择最小的K个数(大顶堆) 总结参考网址 前言 有时候很容易被大顶堆小顶堆的概念混淆,所以在这里记录一…

苹果平板上好用的软件推荐

苹果平板上好用的软件推荐 好用的软件:googlenoteonenote潮汐izip pronebo扇贝单词noteabilitymemopadgoodnotesinshotbear素记生之时死之钟daysmatterArtstudio Proprocreate,PDF expert,Goodnotesnoteplusmarginnotenotabilitysketchesproc…

android最强的平板,安卓最强平板来了!骁龙855,还有这一苹果都做不到的技术...

原标题:安卓最强平板来了!骁龙855,还有这一苹果都做不到的技术 今天( 8 月 21 日)下午,三星正式举办了 Galaxy Note 10 系列中国发布会。在这次发布会上,三星除了正式发布受人关注的 Galaxy Note 10和 Galaxy Note 10 …

Android平板如何重装系统,苹果平板电脑怎么重装系统 苹果平板电脑重装系统方法【详解】...

随着生活水平的提高,现在基本家家户户都有了自己的平板电脑。不比PC机上的windows系统, 平板电脑 的系统升级换代频率可是很高的。这里以ipad的IOS升级为例,让小编为大家介绍一下 苹果平板电脑重装系统方法 ,一起来看看吧&#xf…

苹果平板可以用html么,哪些苹果平板可以用苹果笔

语音内容: 大家好,我是时间财富网智能客服时间君,上述问题将由我为大家进行解答。 可以用苹果笔的苹果平板型号是: 1、苹果铅笔Apple Pencil(第一代)支持2019年发布的第三代ipad air(代号为A2152、A2153、A2123和A2154)&#xff0…

苹果于 2021 年 4 月 21 日凌晨发布了搭载 M1 芯片的 iPad Pro

苹果于 2021 年 4 月 21 日凌晨发布了搭载 M1 芯片的 iPad Pro。由于厚度的增加,新的 iPad 将不能与老一代的妙控键盘一起使用。 这款平板电脑屏幕尺寸为 12.9/11 英寸,其中 12.9 英寸版本采用 mini-LED 技术,分辨率 2732 x 2048。 根据外媒…

飞图平板电脑android系统怎么更新,苹果平板电脑怎么更新教程【图文】

但是在众多的 平板电脑 中由于 苹果 的平板电脑,它的系统操作非常流畅,而且它的安全性非常高,因此人们都会选择购买苹果平板电脑。而苹果为了让人们可以得到更加快捷方便的操作体验,因此每隔一段时间,苹果都会为自己的…

windows和android平板,说一说安卓,苹果,和Windows平板的差别,看到好多人纠结

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 我3种产品都用过,安卓用的是Nexus7和Galaxy Tab2 苹果用的是iPad2, Windows用的是Surface Pro。 安卓 :性价比高,样式丰富,自由度高 [性价比高]:这个没什么说…

ipad 计算机连接网络设置方法,iPad Air怎么设置上网 苹果平板设置上网步骤【图文】...

iPad Air怎么设置上网? iPad Air于2013年11月1日正式上市,中国这次也成为新iPad的首发市场。 下面,我们就来看看苹果平板常用上网方法。 第一步、连接无线 1、由于当前国行版的只有 Wifi 无线版,所以我们可以让 iPad Air 通过上网的唯一方式…

android平板电脑怎么样,苹果还是安卓?一图教你如何选择适合自己的平板

苹果还是安卓?一图教你如何选择适合自己的平板 2020-09-18 14:43:34 11点赞 23收藏 20评论 创作立场声明:由于笔者最近也在为如何选购自己的平板烦恼,于是上网收集了一些资料,希望对于各位小伙伴有帮助。 近日,万众期待…
最新文章