1. 程式人生 > >python configparser 模塊

python configparser 模塊

spa fault rem 修改配置 bsp true fig remove 版本

configparser 模塊是用於生成和修改常見配置文檔,當前模塊的名稱在 python 3.x 版本中變更為 configparser。

示例配置文件

[DEFAULT]
ServerAliveInterval = 45
Compression = yes
CompressionLevel = 9
 
[test1.net.cn]
user = test
host = localhost
port = 8080
 
[top.net.cn]
test_port = 9090
user = root
port = 2202

1、生成配置文件

import configparser
config 
= configparser.ConfigParser() config["DEFAULT"] = { ServerAliveInterval:45, Compression:yes, CompressionLevel:9 } config[test1.net.cn] = dict() # 使某一塊配置等於一個字典 config[test1.net.cn][user] = test #使用鍵值對的方式添加一行配置 config[test1.net.cn][host] = localhost config[test1.net.cn
][port] = 8080 #所有的值都以字符串的方式傳進去 config[top.net.cn] = dict() top = config[top.net.cn] top[test_port] = 9090 top[user] = root top[port] = 2202 with open(test.ini,w) as configfile: config.write(configfile) # 最後一定要寫入到配置文件

#####################

[DEFAULT]
serveraliveinterval = 45
compression = yes
compressionlevel = 9


[test1.net.cn]
user = test
host = localhost
port = 8080


[top.net.cn]
test_port = 9090
user = root
port = 2202

#####################

2、讀取配置文件

import configparser
config = configparser.ConfigParser()
config.read(test.ini)


print (top.net.cn in config) # 判斷一個sections是否在配置文件中
for key in config: # 遍歷所有的sections
    print (key)
print (config.sections()) # 直接打印所有的sections
print (config.defaults()) # 獲取DEFAULT的特殊方法,獲取那個單獨的sections,都會帶有DEFALUT的值。
print (config[test1.net.cn][port]) # 獲取單獨的某一個記錄
print (config.items(top.net.cn)) # 獲取一個sections的記錄
print (config.options(test1.net.cn)) # 獲取test1.net.cn的sections,其中也包括DEFALUT的值
print (config.items(top.net.cn)) #獲取top.net.cn的所有記錄
var = config.get(top.net.cn,test_port) #獲取某一個sections下的一個key的值
print (var)

# True
# DEFAULT
# test1.net.cn
# top.net.cn
# [‘test1.net.cn‘, ‘top.net.cn‘]
# OrderedDict([(‘serveraliveinterval‘, ‘45‘), (‘compression‘, ‘yes‘), (‘compressionlevel‘, ‘9‘)])
# 8080
# [(‘serveraliveinterval‘, ‘45‘), (‘compression‘, ‘yes‘), (‘compressionlevel‘, ‘9‘), (‘test_port‘, ‘9090‘), (‘user‘, ‘root‘), (‘port‘, ‘2202‘)]
# [‘user‘, ‘host‘, ‘port‘, ‘serveraliveinterval‘, ‘compression‘, ‘compressionlevel‘]
# [(‘serveraliveinterval‘, ‘45‘), (‘compression‘, ‘yes‘), (‘compressionlevel‘, ‘9‘), (‘test_port‘, ‘9090‘), (‘user‘, ‘root‘), (‘port‘, ‘2202‘)]
# 9090

3、修改配置文件

import configparser
config = configparser.ConfigParser()
config.read(test.ini)

# 刪除已經存在的sections top.net.cn。
remove_sections = config.remove_section(top.net.cn)

# 如果一個sections存在,再次添加就會出現異常。所以我現在先刪除,然後再添加。
# add_section = config.has_section(‘leslie‘)
config.remove_section(leslie)

# 添加一個不存在的sections。
add_section = config.add_section(leslie)

# 對已經存在的sections中添加記錄。
config.set(leslie,name,xikang)

# 刪除已經在sections中的一條記錄。
config.remove_option(test1.net.cn,port)

# 最後一定要把這些修改寫到文件中。
config.write(open(test.ini,w))

python configparser 模塊