python 操作ini 配置文件大全


 

原文链接:https://www.cnblogs.com/bert227/p/9326313.html

 

ConfigParser模块在python中是用来读取配置文件,配置文件的格式跟windows下的ini配置文件相似,可以包含一个或多个节(section),每个节可以有多个参数(键=值)。 
注意:在python 3 中ConfigParser模块名已更名为configparser

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
config.read( 'example.ini' ,encoding = "utf-8" )
"""读取配置文件,python3可以不加encoding"""
options(section)
"""sections(): 得到所有的section,并以列表的形式返回"""
config.defaults()
"""defaults():返回一个包含实例范围默认值的词典"""
config.add_section(section)
"""添加一个新的section"""
config.has_section(section)
"""判断是否有section"""
print (config.options(section))
"""得到该section的所有option"""
has_option(section, option)
"""判断如果section和option都存在则返回True否则False"""
read_file(f, source = None )
"""读取配置文件内容,f必须是unicode"""
read_string(string, source = ’’)
"""从字符串解析配置数据"""
read_dict(dictionary, source = ’’)
"""从词典解析配置数据"""
get(section, option,  * , raw = False vars = None [, fallback])
"""得到section中option的值,返回为string类型"""
getint(section,option)
"""得到section中option的值,返回为int类型"""
getfloat(section,option)
"""得到section中option的值,返回为float类型"""
getboolean(section, option)
"""得到section中option的值,返回为boolean类型"""
items(raw = False vars = None )
"""和items(section, raw=False, vars=None):列出选项的名称和值"""
set (section, option, value)
"""对section中的option进行设置"""
write(fileobject, space_around_delimiters = True )
"""将内容写入配置文件。"""
remove_option(section, option)
"""从指定section移除option"""
remove_section(section)
"""移除section"""
optionxform(option)
"""将输入文件中,或客户端代码传递的option名转化成内部结构使用的形式。默认实现返回option的小写形式;"""
readfp(fp, filename = None )
"""从文件fp中解析数据"""

生成configparser文件实例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
import  configparser   #配置文件
config  =  configparser.ConfigParser()
"""生成configparser配置文件 ,字典的形式"""
"""第一种写法"""
config[ "DEFAULT" =  { 'ServerAliveInterval' '45' ,
                      'Compression' 'yes' ,
                      'CompressionLevel' '9' }
"""第二种写法"""
config[ 'bitbucket.org' =  {}
config[ 'bitbucket.org' ][ 'User' =  'hg'
"""第三种写法"""
config[ 'topsecret.server.com' =  {}
topsecret  =  config[ 'topsecret.server.com' ]
topsecret[ 'Host Port' =  '50022'   # mutates the parser
topsecret[ 'ForwardX11' =  'no'   # same here
 
config[ 'DEFAULT' ][ 'ForwardX11' =  'yes'
"""写入后缀为.ini的文件"""
with  open ( 'example.ini' 'w' ) as configfile:
     config.write(configfile)

运行结果:

1
2
3
4
5
6
7
8
9
10
11
12
[DEFAULT]
serveraliveinterval  =  45
compression  =  yes
compressionlevel  =  9
forwardx11  =  yes
 
[bitbucket.org]
user  =  hg
 
[topsecret.server.com]
host port  =  50022
forwardx11  =  no

读取configparser配置文件的实例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
import  configparser   #配置文件
config  =  configparser.ConfigParser()
config.read( "example.ini" )
 
print ( "所有节点==>" ,config.sections())
 
print ( "包含实例范围默认值的词典==>" ,config.defaults())
 
for  item  in  config[ "DEFAULT" ]:
     print ( "循环节点topsecret.server.com下所有option==>" ,item)
 
print ( "bitbucket.org节点下所有option的key,包括默认option==>" ,config.options( "bitbucket.org" ))
 
print ( "输出元组,包括option的key和value" ,config.items( 'bitbucket.org' ))
 
print ( "bitbucket.org下user的值==>" ,config[ "bitbucket.org" ][ "user" ])  #方式一
 
topsecret  =  config[ 'bitbucket.org' ]
print ( "bitbucket.org下user的值==>" ,topsecret[ "user" ])  #方式二
 
print ( "判断bitbucket.org节点是否存在==>" , 'bitbucket.org'  in  config)
 
print ( "获取bitbucket.org下user的值==>" ,config.get( "bitbucket.org" , "user" ))
 
print ( "获取option值为数字的:host port=" ,config.getint( "topsecret.server.com" , "host port" ))

运行结果

1
2
3
4
5
6
7
8
9
10
11
12
13
所有节点 = = > [ 'bitbucket.org' 'topsecret.server.com' ]
包含实例范围默认值的词典 = = > OrderedDict([( 'serveraliveinterval' '45' ), ( 'compression' 'yes' ), ( 'compressionlevel' '9' ), ( 'forwardx11' 'yes' )])
循环节点topsecret.server.com下所有option = = > serveraliveinterval
循环节点topsecret.server.com下所有option = = > compression
循环节点topsecret.server.com下所有option = = > compressionlevel
循环节点topsecret.server.com下所有option = = > forwardx11
bitbucket.org节点下所有option的key,包括默认option = = > [ 'user' 'serveraliveinterval' 'compression' 'compressionlevel' 'forwardx11' ]
输出元组,包括option的key和value [( 'serveraliveinterval' '45' ), ( 'compression' 'yes' ), ( 'compressionlevel' '9' ), ( 'forwardx11' 'yes' ), ( 'user' 'hg' )]
bitbucket.org下user的值 = = > hg
bitbucket.org下user的值 = = > hg
判断bitbucket.org节点是否存在 = = True
获取bitbucket.org下user的值 = = > hg
获取option值为数字的:host port =  50022

删除配置文件section和option的实例(默认分组有参数时无法删除,但可以先删除下面的option,再删分组)

1
2
3
4
5
6
7
8
import  configparser   #配置文件
config  =  configparser.ConfigParser()
config.read( "example.ini" )
config.remove_section( "bitbucket.org" )
"""删除分组"""
config.remove_option( "topsecret.server.com" , "host port" )
"""删除某组下面的某个值"""
config.write( open ( 'example.ini' "w" ))

运行结果

1
2
3
4
5
6
7
8
[DEFAULT]
serveraliveinterval  =  45
compression  =  yes
compressionlevel  =  9
forwardx11  =  yes
 
[topsecret.server.com]
forwardx11  =  no

配置文件的修改实例

1
2
3
4
5
6
7
8
9
"""修改"""
import  configparser
config  =  configparser.ConfigParser()
config.read( "example.ini" )
config.add_section( "new_section" )
"""新增分组"""
config. set ( "DEFAULT" , "compressionlevel" , "110" )
"""设置DEFAULT分组下compressionlevel的值为110"""
config.write( open ( 'example.ini' "w" ))

运行结果

 

1
2
3
4
5
6
7
8
9
10
[DEFAULT]
serveraliveinterval  =  45
compression  =  yes
compressionlevel  =  110
forwardx11  =  yes
 
[topsecret.server.com]
forwardx11  =  no
 
[new_section]


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM