前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python configparser模块

python configparser模块

作者头像
py3study
发布2018-08-02 16:06:33
3800
发布2018-08-02 16:06:33
举报
文章被收录于专栏:python3python3

configparser模块:用于生成和修改常见配置文档

来看一下开源软件的常见文档格式如下

代码语言:javascript
复制
[DEFAULT]
ServerAliveInterval = 45
Compression = yes
CompressionLevel = 9
ForwardX11 = yes
 
[bitbucket.org]
User = hg
 
[topsecret.server.com]
Port = 50022
ForwardX11 = no

用python生成一个这样的文档

代码语言:javascript
复制
#!/usr/bin/env python
# coding: utf-8
__author__ = 'www.py3study.com'

import configparser

#创建一个ConfigParser对象
config = configparser.ConfigParser()
#默认参数
config["DEFAULT"] = {'ServerAliveInterval': '45',
                     'Compression': 'yes',
                     'CompressionLevel': '9'}
#添加一个节点bitbucket.org
config['bitbucket.org'] = {}
#增加节点的属性值
config['bitbucket.org']['User'] = 'hg'
#添加一个节点topsecret.server.com
config['topsecret.server.com'] = {}
#将节点赋值给topsecret
topsecret = config['topsecret.server.com']
#添加属性
topsecret['Host Port'] = '50022'  # mutates the parser
topsecret['ForwardX11'] = 'no'  # same here
#给DEFAULT添加属性
config['DEFAULT']['ForwardX11'] = 'yes'
#写入配置文件example.ini
with open('example.ini', 'w') as configfile:
    config.write(configfile)

执行程序,查看example.ini文件内容

代码语言:javascript
复制
[DEFAULT]
serveraliveinterval = 45
compression = yes
compressionlevel = 9
forwardx11 = yes

[bitbucket.org]
user = hg

[topsecret.server.com]
host port = 50022
forwardx11 = no

读取文件内容

1、获取所有节点

代码语言:javascript
复制
import configparser

config = configparser.ConfigParser()
config.read('example.ini', encoding='utf-8')
ret = config.sections()
print(ret)

执行输出

['bitbucket.org', 'topsecret.server.com']

sections()不会返回default的值,如果需要,使用defaults()方法

代码语言:javascript
复制
print(config.defaults())

执行输出

OrderedDict([('serveraliveinterval', '45'), ('compression', 'yes'), ('compressionlevel', '9'), ('forwardx11', 'yes')])

2、获取指定节点下指定key的值

代码语言:javascript
复制
import configparser
config = configparser.ConfigParser()
config.read('example.ini', encoding='utf-8')
ret = config['bitbucket.org']['user']
print(ret)

执行输出 hg

或者

代码语言:javascript
复制
ret = config.get('bitbucket.org','user')

执行输出 效果同上

删除一个节点

代码语言:javascript
复制
#删除一个节点
ret = config.remove_section('bitbucket.org')
#写入到新文件i.cfg
config.write(open('i.cfg', "w"))

查看i.cfg文件内容

代码语言:javascript
复制
[DEFAULT]
serveraliveinterval = 45
compression = yes
compressionlevel = 9
forwardx11 = yes

[topsecret.server.com]
host port = 50022
forwardx11 = no

判断节点是否存在

代码语言:javascript
复制
sec = config.has_section('wupeiqi')
print(sec)

执行输出 False

添加一个节点

代码语言:javascript
复制
sec = config.add_section('wupeiqi')
config.write(open('i.cfg', "w"))

执行程序,查看文件内容

代码语言:javascript
复制
[DEFAULT]
serveraliveinterval = 45
compression = yes
compressionlevel = 9
forwardx11 = yes

[bitbucket.org]
user = hg

[topsecret.server.com]
host port = 50022
forwardx11 = no

[wupeiqi]

删除一个属性

代码语言:javascript
复制
sec = config.remove_option('topsecret.server.com','forwardx11')
config.write(open('i.cfg', "w"))

执行程序,查看文件内容

代码语言:javascript
复制
[DEFAULT]
serveraliveinterval = 45
compression = yes
compressionlevel = 9
forwardx11 = yes

[bitbucket.org]
user = hg

[topsecret.server.com]
host port = 50022
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018-03-04 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档