Python标准库之ConfigParser模块

时间:2023-01-30 06:21:27

配置文件的格式

a) 配置文件中包含一个或多个 section, 每个 section 有自己的 option;

b) section 用 [sect_name] 表示,每个option是一个键值对,使用分隔符 = 或 : 隔开;

c) 在 option 分隔符两端的空格会被忽略掉

d) 配置文件使用 # 或 ; 注释

注意事项

配置参数读出来都是字符串类型, 参数运算时注意类型转换(可用eval()函数转换),另外,对于字符型参数不需要加""

ConfigParser的一些问题:

  1. 不能区分大小写。
  2. 重新写入的配置文件不能保留原有配置文件的注释。
  3. 重新写入的配置文件不能保持原有的顺序。
  4. 不支持嵌套。
  5. 不支持格式校验

一个简单的配置文件样例 test.conf

# database
[db]
host = 192.168.6.1
port = 3306
user = root
pass = root

# ssh
[ssh]
host = 192.168.1.106
user = huey
pass = huey

插值 Interpolation

SafeConfigParser 提供了插值的特性来结合数据。
url.conf

复制代码
[DEFAULT]
url = %(protocol)s://%(server)s:%(port)s/

[http]
protocol = http
server = localhost
port = 8080

[ftp]
url = %(protocol)s://%(server)s/
protocol = ftp
server = 192.168.1.106

代码示例:
import ConfigParser

cp = ConfigParser.SafeConfigParser()
cp.read('url.conf')

print cp.get('http', 'url') # http://localhost:8080/
print cp.get('ftp', 'url') # ftp://192.168.1.106/