https://juejin.cn/post/6844903586963390471

python内置的configparser模块能非常方便的对配置文件进行操作,常见的配置文件有*.ini和*.conf。配置文件常见的内容形式如图所示(还有冒号表示的),主要组成部分也在图中:

需要注意的是value被读出来后都是字符串类型的,虽然在文件里面看上去是整型


一、读取配置文件

 
arduino

复制代码
import configparser
config = configparser.ConfigParser()
1. 获取所有的section,返回一个列表
 
scss

复制代码
    config.sections()
>>> ['bitbucket.org', 'topsecret.server.com']
这里为什么没有DEFAULT?我的理解是DEFAULT是个特殊的section,它属于其他所有的section,或者说其他的section都继承DEFAULT。注意DEFAULT一定都是大写字母,不然这种效果就没了。
2.获取指定section下的所有option,返回一个列表
 
arduino

复制代码
    config.options('topsecret.server.com')
>>> ['port', 'forwardx11', 'serveraliveinterval', 'compression', 'compressionlevel']
这里除了topsecret.server.com原本有的两个option,还有DEFAUTL里面的所有option,相当于继承了DEFAULT里面的所有option,且自己的value会覆盖DEFAULT的value,详见第3点。
3.获取指定section中option的value,返回一个字符串
 
arduino

复制代码
    conf['topsecret.server.com']['ForwardX11']
>>> no
或者用get:conf.get('topsecret.server.com', 'ForwardX11')
这里cForwardX11就把DEFAULT里面的cForwardX11值覆盖了,变成了no
4.获取指定section的item,返回是一个列表,元素是二元元组
 
scss

复制代码
    conf.items('bitbucket.org')
>>> [('serveraliveinterval', '45'), ('compression', 'yes'), ('compressionlevel', '9'), ('forwardx11', 'yes'), ('user', 'hg')]
bitbucket.org也继承了DEFAULT

二、写配置文件

 
arduino

复制代码
import configparser
config = configparser.ConfigParser()
1. 直接将一个dict赋值给section
 
arduino

复制代码
config['db'] = {
'host': '192.168.1.2',
'port': '123'
}
2. 或者创建先创建一个空section,在加item
 
css

复制代码
config['platofrm'] = {}
config['platform']['name'] = 'cc'
用这种方法的话一定得先创建section,直接执行第二行代码是不行的。
3. 最后要把配置写到文件里面
 
lua

复制代码
with open('example.ini', 'w') as configfile:
config.write(configfile)

4. 对已有的配置进行更改
 
arduino

复制代码
config.set('platform', 'name', 'bb')
同样要再一次做写入文件操作才能生效。

[转帖]python中对配置文件的读写操作的更多相关文章

  1. Python中json的简单读写操作

    Python中json的简单读写操作 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.它基于ECMAScript的一个子集. JSON采用完全独立于语言的 ...

  2. Python 中 configparser 配置文件的读写及封装,配置文件存放数据,方便修改

    1. 将程序中不常变化的数据放在配置文件中,有什么好处? 将配置统一放在一起,进行统一管理,方便维护,方便修改 配置文件将存放测试数据比如: Excel文件名. 日志名. 用例执行的结果. 实际结果和 ...

  3. python中 对文件的读写操作 以及如何边写入 边保存flush()

    转自:https://blog.csdn.net/t8116189520/article/details/78854708 首先 python中打开文件大致常用的几类如下: 1.写入文件write # ...

  4. 使用python中读取配置文件

    最近在接触利用python来写测试框架,本人也是个刚接触python,所以是个小菜鸟,今天开始,一点点的记录学习中的积累,方便以后的学习以及回顾,也希望能帮助跟我一样的小菜鸟们一步步的成长起来.那么, ...

  5. Python中关于csv的简单操作

    Python中关于csv的简单操作 CSV操作简单,直接import csv即可, 主要使用reader和pandas 1 reader的简单使用 csv.reader("1.csv&quo ...

  6. C#+Access 员工信息管理--简单的增删改查操作和.ini配置文件的读写操作。

    1.本程序的使用的语言是C#,数据库是Access2003.主要是对员工信息进行简单的增删改查操作和对.ini配置文件的读写操作. 2.代码运行效果如下: 功能比较简单.其中在得到查询结果后,在查询结 ...

  7. java文件操作(普通文件以及配置文件的读写操作)

    转自:java文件操作(普通文件以及配置文件的读写操作) 读取普通文件 : /** * xiangqiao123欢迎你 如果对代码有疑问可以加qq群咨询:151648295 * * 读取MyFile文 ...

  8. Python中的文件和目录操作实现

    Python中的文件和目录操作实现 对于文件和目录的处理,虽然可以通过操作系统命令来完成,但是Python语言为了便于开发人员以编程的方式处理相关工作,提供了许多处理文件和目录的内置函数.重要的是,这 ...

  9. python中读取配置文件ConfigParser

    在程序中使用配置文件来灵活的配置一些参数是一件很常见的事情,配置文件的解析并不复杂,在python里更是如此,在官方发布的库中就包含有做这件事情的库,那就是ConfigParser,这里简单的做一些介 ...

  10. python中读取配置文件的方式

    方式1:argparse argparse,是Python标准库中推荐使用的编写命令行程序的工具.也可以用于读取配置文件. 字典样式的配置文件*.conf 配置文件test1.conf { " ...

随机推荐

  1. mac 编译php 7.2+扩展编译 的坑史(不是swoole的坑),php的一个坑,这个坑还没填满,问题根源还没有找到 !

    目前网上找到的文章全是php 7.1,但是brew己经没有7.1了,最新是7.2,这让我怀疑是不是我的版本问题,导致swoole编译时总是编译不过去.后来发现任何扩展都编不过去,提示: Configu ...

  2. 【菜鸟必看】stm32定时器的妙用

    摘要:本文为你带来关于stm32定时器的使用的便利和优势之处. 使用定时器去计算获取一条的时间 一.初步了解定时器 stm32定时器时钟图如下: 定时器2-7:普通定时器定时器1.8:高级定时器 二. ...

  3. 华为云登顶HotpotQA多跳知识推理问答评测

    日前,华为云在知识计算领域的多跳知识推理问答取得重大进展.基于自然语言处理领域的领先技术积累,华为云语音语义创新Lab联合华为诺亚方舟实验室在国际权威的HotpotQA评测Fullwiki Setti ...

  4. 探究Python源码,终于弄懂了字符串驻留技术

    摘要:在本文中,我们将深入研究 Python 的内部实现,并了解 Python 如何使用一种名为字符串驻留(String Interning)的技术,实现解释器的高性能. 每种编程语言为了表现出色,并 ...

  5. 解读革命性容器集群CCE Turbo:计算、网络、调度全方位加速

    摘要:CCE Turbo是华为云推出的一款革命性容器集群. 5月31日,在华为云Techwave云基础设施技术专题日上,华为云容器批量计算首席架构师马达对CCE Turbo的技术内幕进行了深度解读,C ...

  6. GaussDB(for Influx)与开源企业版性能对比

    摘要:相比于企业版InfluxDB,GaussDB(for Influx)能为客户提供更高的写入能力.更稳定的查询能力.更高的数据压缩率,高效满足各大时序应用场景需求. 本文分享自华为云社区<华 ...

  7. PNG文件解读(2):PNG格式文件结构与数据结构解读—解码PNG数据

    PNG文件识别 之前写过<JPEG/Exif/TIFF格式解读(1):JEPG图片压缩与存储原理分析>,JPEG文件是以,FFD8开头,FFD9结尾,中间存储着以0xFFE0~0xFFEF ...

  8. 火山引擎 DataTester:如何做 A/B 实验的假设检验

    A/B 实验的核心统计学理论是(双样本)假设检验,是用来判断样本与样本.样本与总体的差异是由 抽样误差 引起还是 本质差别 造成的一种统计推断方法. 假设检验,顾名思义,是一种对自己做出的假设进行数据 ...

  9. socket.d.js v2.3.4 支持"微信"、"uniapp"

    Socket.D 是基于"事件"和"语义消息""流"的网络应用层协议.有用户说,"Socket.D 之于 Socket,尤如 Vu ...

  10. Solon2 之基础:四、应用启动过程与完整生命周期

    串行的处理过程(含六个事件扩展点 + 两个函数扩展点),代码直接.没有什么模式.易明 提醒: 启动过程完成后,项目才能正常运行(启动过程中,不能把线程卡死了) AppBeanLoadEndEvent ...