当前位置: 首页 > news >正文

读写配置文件模块configparser—参考杨永明博客

一、configparser模块介绍

1、定义:

ConfigParser是用来读取配置文件的包,可对配置文件进行读写操作;如系统中缺乏该模块,可安装包configparser;

2、配置文件的标准格式:

[db]
db_host = 127.0.0.1
db_port = 69
db_user = root
db_pass = root
host_port = 69

[concurrent]
thread = 10
processor = 20

#一个配置文件可包含多个section;一个section可对应多个option;
配置文件示例

3、configparser模块的使用流程

import configparser  #引入configparser模块
config = configparser.ConfigParser() #实例化对象
config.read('ini',encoding='utf-8') #开始读取配置文件

#判断是否存在section:config.has_section(section)
#判断是否存在option:config.has_option(section,option)
#添加section:config.add_section(section)
#添加/修改option:config.set(section,option,value)
#获取所有的section:config.sections()
#获取指定section下的所有option:config.options(section)
#获取指定section下的指定option:config.get(section,option)
#获取指定section的所有配置信息:config.items(section)

config.write(open('ini','w'))
模块使用流程

二、模块具体用法

1、创建配置文件

import configparser
config = configparser.ConfigParser()
config.read('ini',encoding='utf-8')
if not config.has_section('db'):
    config.add_section('db')
else:
    if not config.has_option('db','db_host'):
    config.set('db','db_host','127.0.0.1')
config.set('db','db_user','root')
config.set('db','db_pwd','root')
config.set('db','db_port','3306')
config.write(open('ini','w'))
创建配置文件
[db]
db_host = 127.0.0.1
db_user = root
db_pwd = root
db_port = 3306
执行结果

2、获取配置文件中的所有section

import configparser
config = configparser.ConfigParser()
config.read('ini',encoding='utf-8')
result = config.sections()
print(result)
config.write(open('ini','w'))

#结果以列表形式返回
#['db', 'mysql']
获取所有sections

3、获取指定section下的所有options

import configparser
config = configparser.ConfigParser()
config.read('ini',encoding='utf-8')
result = config.options('db')
print(result)
config.write(open('ini','w'))

#结果以列表形式返回
#['db_host', 'db_user', 'db_pwd', 'db_port']
获取指定section下的所有options

4、获取指定section下的所有配置信息

import configparser
config = configparser.ConfigParser()
config.read('ini',encoding='utf-8')
result = config.items('db')
print(result)
config.write(open('ini','w'))

#结果以列表内包含元组的形式返回
#[('db_host', '127.0.0.1'), ('db_user', 'root'), ('db_pwd', 'root'), ##('db_port', '3306')]
获取指定section下的所有配置信息

5、获取指定section下指定option(以不同格式)

[db]
db_host = 127.0.0.1
db_user = root
db_pwd = root
db_port = 3306
enable = 0
配置文件
import configparser
config = configparser.ConfigParser()
config.read('ini',encoding='utf-8')
#获取字符串形式的值
result = config.get('db','db_port')
print(result,type(result))
#获取int格式的值
result = config.getint('db','db_port')
print(result,type(result))
#获取floot格式的值
result = config.getfloat('db','db_port')
print(result,type(result))
#获取bool格式的值
result = config.getboolean('db','enable')
print(result,type(result))
config.write(open('ini','w'))
value的不同输出类型
3306 <class 'str'>
3306 <class 'int'>
3306.0 <class 'float'>
False <class 'bool'>
执行结果

 

转载于:https://www.cnblogs.com/yangmeng1990/p/10424550.html

相关文章:

  • Android的WIFI局域网对讲机
  • todo: 改变字体的动画
  • seaborn 安装成功 + ImportError: DLL load failed: 找不到指定的模块 问题解决
  • 翻译:Hystrix - How To Use
  • k8s应用机密信息与配置管理(九)--技术流ken
  • 如何使用 JavaScript 解析 URL
  • patchwork.ffmpeg.org 里面未被选中的优秀代码
  • c# 设计模式
  • Spark in action on Kubernetes - Playground搭建与架构浅析
  • __setitem__,__getitem,__delitem__的作用
  • MQ框架的比较
  • 更好用的集群限流功能,Sentinel 发布 v1.4.2
  • Promise面试题,控制异步流程
  • opencv 增强现实(二):特征点匹配
  • CentOS 7 root口令恢复
  • 2017-08-04 前端日报
  • - C#编程大幅提高OUTLOOK的邮件搜索能力!
  • canvas 绘制双线技巧
  • C语言笔记(第一章:C语言编程)
  • IIS 10 PHP CGI 设置 PHP_INI_SCAN_DIR
  • laravel5.5 视图共享数据
  • Linux快速复制或删除大量小文件
  • miniui datagrid 的客户端分页解决方案 - CS结合
  • SpringBoot 实战 (三) | 配置文件详解
  • Swoft 源码剖析 - 代码自动更新机制
  • vue 个人积累(使用工具,组件)
  • 服务器之间,相同帐号,实现免密钥登录
  • 关于Android中设置闹钟的相对比较完善的解决方案
  • 双管齐下,VMware的容器新战略
  • 用mpvue开发微信小程序
  • 【干货分享】dos命令大全
  • PostgreSQL 快速给指定表每个字段创建索引 - 1
  • ​如何防止网络攻击?
  • !!java web学习笔记(一到五)
  • # Swust 12th acm 邀请赛# [ E ] 01 String [题解]
  • #Linux(Source Insight安装及工程建立)
  • $(selector).each()和$.each()的区别
  • (C)一些题4
  • (Redis使用系列) SpringBoot中Redis的RedisConfig 二
  • (ZT)薛涌:谈贫说富
  • (心得)获取一个数二进制序列中所有的偶数位和奇数位, 分别输出二进制序列。
  • (一) springboot详细介绍
  • (原创) cocos2dx使用Curl连接网络(客户端)
  • (转)h264中avc和flv数据的解析
  • (转载)利用webkit抓取动态网页和链接
  • (最全解法)输入一个整数,输出该数二进制表示中1的个数。
  • .net CHARTING图表控件下载地址
  • .Net MVC4 上传大文件,并保存表单
  • .NET 设计模式—简单工厂(Simple Factory Pattern)
  • .NET/ASP.NETMVC 深入剖析 Model元数据、HtmlHelper、自定义模板、模板的装饰者模式(二)...
  • .Net8 Blazor 尝鲜
  • @ 代码随想录算法训练营第8周(C语言)|Day57(动态规划)
  • @ConfigurationProperties注解对数据的自动封装
  • @KafkaListener注解详解(一)| 常用参数详解
  • [.net 面向对象程序设计进阶] (19) 异步(Asynchronous) 使用异步创建快速响应和可伸缩性的应用程序...