ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

Python内置模块之configparse

2019-02-21 19:53:27  阅读:291  来源: 互联网

标签:configparse 内置 sections Python os nginx version print config


一、概述

1.1、处理的文件形式

configparse 主要是用来处理类似于windows的 ini文件,这个文件的特点是有多个节(section),每个节下会存储多个k=v的值

如下配置

[hardware]
cpu = 2
[os]
os = CentOS
os_version = 6.9
kernel_version = 2.6.32
[common]
selinux = disabled
file_descriptor = 65535
[nginx]
version = 1.6.3
install_path = /tuike/server/nginx
config_file =['/middleWare/nginx/centralapi.conf','/middleWare/nginx/wezhuanba1.conf']

 

1.2、相关方法

  • config.write()   将配置写入文件,括号里是文件的句柄

 

二:实践

2.1、生成配置文件

import  configparser
config = configparser.ConfigParser() # 得到一个对象
config["hardware"] = {'cpu':'2'} # 增加一个hardware节,节内的内容使用字典数据格式表示
config["os"] = {'os':'CentOS','os_version':'6.9','kernel_version':'2.6.32'}
config['common'] = {'selinux':'disabled',
                      'file_descriptor':'65535'
                    }
config['nginx'] = {'version':'1.6.3',
                   'install_path':'/tuike/server/nginx',
                   'config_file':['/middleWare/nginx/centralapi.conf','/middleWare/nginx/wezhuanba1.conf']
                   }
with open('test','w',encoding='utf-8') as f:
    config.write(f)

 

2.2、各种操作

import configparser
config =  configparser.ConfigParser()  # 拿到一个配置对象

############## sections 操作
# 判断sections是否再配置文件里
print('os' in config)  # section in  配置对象
print('wangys' in config)

# 查看sections
print(config.sections())   # 直接看sections,因为没有读取配置文件,所以会返回一个空列表
# []
config.read('test.ini',encoding='utf-8') # 读取配置文件,注意编码
print(config.sections()) # 再次打印sections,可以看到有结果
# ['hardware', 'os', 'common', 'nginx']

# 增加一个section
config.add_section('wangys')
print(config.sections())
# ['hardware', 'os', 'common', 'nginx', 'wangys']

# 删除一个section
config.remove_section('wangys')
print(config.sections())
# ['hardware', 'os', 'common', 'nginx']


##### 操作k/v
# 查看某个节里的内容
# 使用 for 循环去key
# 判断某个key是否再selections里




for key in config['os']:
    print(key)

# options查看selctions下配置的key
print(config.options('nginx'))

# 查看你k v 值  返回一个列表,没有k/v组成一个元祖
print(config.items('nginx'))
# [('version', '1.6.3'), ('install_path', '/tuike/server/nginx'), ('config_file', "['/middleWare/nginx/centralapi.conf', '/middleWare/nginx/wezhuanba1.conf']")]
# 获取某个节下的某个key的value值
print(config.get('os','os_version'))
# print(config['os']['os_version','kernel_version'])

# 读取某个sections下的所有的k/v值
l = config.options('nginx')
for key in l:
    print('%s:%s'%(key,config.get('nginx',key)))

# 删除一个sections下的key

config.remove_option('os','kernel_version')
print(config.options('os'))
#['os', 'os_version']

# 增加一个option
config.set('os','name','王诚')
print(config.options('os'))
print(config.get('os','name'))
# ['os', 'os_version', 'name']
# 王永胜

with open('test.ini','w',encoding='utf-8') as f:
    config.write(f)

 

标签:configparse,内置,sections,Python,os,nginx,version,print,config
来源: https://www.cnblogs.com/wc89/p/10414856.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有