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