Python配置文件解析模块ConfigParser使用实例
admin
2023-07-31 02:15:24
0

一、ConfigParser简介

ConfigParser 是用来读取配置文件的包。配置文件的格式如下:中括号“[ ]”内包含的为section。section 下面为类似于key-value 的配置内容。

复制代码 代码如下:
 [db]
 db_host = 127.0.0.1
 db_port = 22
 db_user = root
 db_pass = rootroot
 
 [concurrent]
 thread = 10
 processor = 20

中括号“[ ]”内包含的为section。紧接着section 为类似于key-value 的options 的配置内容。
 
二、ConfigParser 初始工作

使用ConfigParser 首选需要初始化实例,并读取配置文件:

复制代码 代码如下:
 cf = ConfigParser.ConfigParser()
 cf.read(\”配置文件名\”)

三、ConfigParser 常用方法

1. 获取所有sections。也就是将配置文件中所有“[ ]”读取到列表中:

复制代码 代码如下:
 s = cf.sections()
 print \’section:\’, s

将输出(以下将均以简介中配置文件为例):
复制代码 代码如下:
 section: [\’db\’, \’concurrent\’]

2. 获取指定section 的options。即将配置文件某个section 内key 读取到列表中:
复制代码 代码如下:
 o = cf.options(\”db\”)
 print \’options:\’, o

将输出:
复制代码 代码如下:
 options: [\’db_host\’, \’db_port\’, \’db_user\’, \’db_pass\’]

3. 获取指定section 的配置信息。
复制代码 代码如下:
 v = cf.items(\”db\”)
 print \’db:\’, v

将输出:
复制代码 代码如下:
 db: [(\’db_host\’, \’127.0.0.1\’), (\’db_port\’, \’22\’), (\’db_user\’, \’root\’), (\’db_pass\’, \’rootroot\’)]

4. 按照类型读取指定section 的option 信息。
同样的还有getfloat、getboolean。
复制代码 代码如下:
 #可以按照类型读取出来
 db_host = cf.get(\”db\”, \”db_host\”)
 db_port = cf.getint(\”db\”, \”db_port\”)
 db_user = cf.get(\”db\”, \”db_user\”)
 db_pass = cf.get(\”db\”, \”db_pass\”)
 
 # 返回的是整型的
 threads = cf.getint(\”concurrent\”, \”thread\”)
 processors = cf.getint(\”concurrent\”, \”processor\”)
 
 print \”db_host:\”, db_host
 print \”db_port:\”, db_port
 print \”db_user:\”, db_user
 print \”db_pass:\”, db_pass
 print \”thread:\”, threads
 print \”processor:\”, processors

将输出:
复制代码 代码如下:
 db_host: 127.0.0.1
 db_port: 22
 db_user: root
 db_pass: rootroot
 thread: 10
 processor: 20

5. 设置某个option 的值。(记得最后要写回)
复制代码 代码如下:
 cf.set(\”db\”, \”db_pass\”, \”zhaowei\”)
 cf.write(open(\”test.conf\”, \”w\”))

6.添加一个section。(同样要写回)
复制代码 代码如下:
 cf.add_section(\’liuqing\’)
 cf.set(\’liuqing\’, \’int\’, \’15\’)
 cf.set(\’liuqing\’, \’bool\’, \’true\’)
 cf.set(\’liuqing\’, \’float\’, \’3.1415\’)
 cf.set(\’liuqing\’, \’baz\’, \’fun\’)
 cf.set(\’liuqing\’, \’bar\’, \’Python\’)
 cf.set(\’liuqing\’, \’foo\’, \’%(bar)s is %(baz)s!\’)
 cf.write(open(\”test.conf\”, \”w\”))

7. 移除section 或者option 。(只要进行了修改就要写回的哦)
复制代码 代码如下:
 cf.remove_option(\’liuqing\’,\’int\’)
 cf.remove_section(\’liuqing\’)
 cf.write(open(\”test.conf\”, \”w\”))

复制代码 代码如下:
#!/usr/bin/env python
from ConfigParser import ConfigParser
CONFIGFILE=\”f.txt\”
config=ConfigParser()
config.read(CONFIGFILE)
print config.get(\’messages\’,\’greeting\’)
radius=input(config.get(\’messages\’,\’questions\’)+\’ \’)
print config.get(\’messages\’,\’result\’)
print config.getfloat(\’numbers\’,\’pi\’)*radius**2

s=config.sections()
print\’section: \’,s
o=config.options(\’messages\’)
print\’messages option: \’,o
v=config.items(\”messages\”)
print\’message de xinxi: \’,v

config.add_section(\’liuyang1\’)
config.set(\’liuyang1\’,\’int\’,\’15\’)
config.set(\’liuyang\’1,\’hhhh\’,\’hello world\’)
config.write(open(\”f.txt\”,\”w\”))
print config.get(\’liuyang1\’,\’int\’)
print config.get(\’liuyang1\’,\’hhhh\’)

复制代码 代码如下:
#!/usr/bin/env python
import ConfigParser
import sys
config=ConfigParser.ConfigParser()
config.add_section(\”book1\”)
config.set(\”book1\”,\”title\”,\”hello world\”)
config.set(\”book1\”,\”aut\”,\”log\”)
config.write(open(\”f.txt\”,\”w\”))

相关内容

热门资讯

500 行 Python 代码... 语法分析器描述了一个句子的语法结构,用来帮助其他的应用进行推理。自然语言引入了很多意外的歧义,以我们...
定时清理删除C:\Progra... C:\Program Files (x86)下面很多scoped_dir开头的文件夹 写个批处理 定...
65536是2的几次方 计算2... 65536是2的16次方:65536=2⁶ 65536是256的2次方:65536=256 6553...
Mobi、epub格式电子书如... 在wps里全局设置里有一个文件关联,打开,勾选电子书文件选项就可以了。
scoped_dir32_70... 一台虚拟机C盘总是莫名奇妙的空间用完,导致很多软件没法再运行。经过仔细检查发现是C:\Program...
pycparser 是一个用... `pycparser` 是一个用 Python 编写的 C 语言解析器。它可以用来解析 C 代码并构...
小程序支付时提示:appid和... [Q]小程序支付时提示:appid和mch_id不匹配 [A]小程序和微信支付没有进行关联,访问“小...
微信小程序使用slider实现... 众所周知哈,微信小程序里面的音频播放是没有进度条的,但最近有个项目呢,客户要求音频要有进度条控制,所...
python绘图库Matplo... 本文简单介绍了Python绘图库Matplotlib的安装,简介如下: matplotlib是pyt...
Prometheus+Graf... 一,Prometheus概述 1,什么是Prometheus?Prometheus是最初在Sound...