configpraser模块
configpraser配置文件,example.conf
[data] #节点
username = Jason
password = 123
[public]
comment = stuff
public = True
pi = 3.1415926
test_int = 9
程序实例
import configparser
config = configparser.ConfigParser()
config.read("example.conf", "utf-8")
ret = config.sections() #获取所有的节点
print(ret) #['data', 'public']
print(config.items('data'))#获取指定节点下的所有键值对
#[('username', 'Jason'), ('password', '123')]
print(config.options("public")) #获取指定节点下的所有键
#['comment', 'public', 'pi']
print(config.get('data', 'username')) #获取指定节点下指定key的值
#Jason
res1 = config.getint('public','test_int')#获取指定节点下key值,必须为整数否则报错
res2 = config.getfloat('public','pi')#获取指定节点下key值,必须为浮点数否则报错
res3 = config.getboolean('public','public')#获取指定节点下key值,必须为布尔值否则报错
print(res1, res2, res3)
check = config.has_section("data") #检查节点
print(check)
#True
添加节点
config.add_section('local') #添加节点
config.write(open('example.conf','w')) #
ret = config.sections()
print(ret)
#['global', 'public', 'local']
删除节点
config.remove_section('local') #删除节点
config.write(open('example.conf','w'))#重新写入文件
ret = config.sections()
print(ret)
#['global', 'public']
检查,删除,设置指定组内的键值对
#检查
check = config.has_option('public','comment')#检查节点下的某个键,返回布尔值
print(check)
输出:
True
#删除
config.remove_option('global','workgroup')
config.write(open('example.txt','w'))
ret = config.options('global')
print(ret)
#输出:
['security', 'maxlog']
#设置指定节点内的键值对
ret1 = config.get('global','maxlog')
print(ret1)
config.set('global','maxlog','100')
config.write(open('example.txt','w'))
ret2 = config.get('global','maxlog')
print(ret2)
#输出:
50
100
configpraser设置多个配置文件然后遍历,这样做Frabic作业分组问题简直超级方便,but遇到了问题!!!
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# __author__:JasonLIN
import os
import sys
import configparser
BASE_DIR = os.path.dirname(os.path.abspath(__file__))
sys.path.append(BASE_DIR)
db_path = os.path.join(BASE_DIR, "db")
config_info = configparser.ConfigParser()
group_dic = {}
group_list = os.listdir(db_path)
print(group_list)
for group in group_list:
group_path = os.path.join(db_path, str(group))
config_info.read(group_path, "utf-8")
ip_list = config_info.sections()
print("ip list>>", ip_list)
group_dic.update({group: ip_list})
print(group)
print("group dict", group_dic)
输出结果
['111', '33']
ip list>> ['192.168.1.1']
111
group dict {'111': ['192.168.1.1']}
ip list>> ['192.168.1.1', '192.168.229.128', '192.168.229.131']
33
group dict {'111': ['192.168.1.1'], '33': ['192.168.1.1', '192.168.229.128', '192.168.229.131']}
Process finished with exit code 0
两个配置文件
33
[192.168.229.128]
user = jason
pwd = 123
ports = 22
[192.168.229.131]
user = jason
pwd = 123
ports = 33
111
[192.168.1.1]
user = dog
pwd = 123
ports = 88
补充:
在config.read("file_path"),前加config.clear()即可解决上述问题
configpraser模块的更多相关文章
- python中configpraser模块
configparser 模块 解析配置文件模块 什么是配置文件? 用于编写程序的配置信息的文件 什么是配置信息? 为了提高程序的扩展性 #configparser模块的使用 #首先我们需要知道配 ...
- Python模块之configpraser
Python模块之configpraser 一. configpraser简介 用于处理特定格式的文件,其本质还是利用open来操作文件. 配置文件的格式: 使用"[]"内包含 ...
- npm 私有模块的管理使用
你可以使用 NPM 命令行工具来管理你在 NPM 仓库的私有模块代码,这使得在项目中使用公共模块变的更加方便. 开始前的工作 你需要一个 2.7.0 以上版本的 npm ,并且需要有一个可以登陆 np ...
- node.js学习(三)简单的node程序&&模块简单使用&&commonJS规范&&深入理解模块原理
一.一个简单的node程序 1.新建一个txt文件 2.修改后缀 修改之后会弹出这个,点击"是" 3.运行test.js 源文件 使用node.js运行之后的. 如果该路径下没有该 ...
- ES6模块import细节
写在前面,目前浏览器对ES6的import支持还不是很好,需要用bable转译. ES6引入外部模块分两种情况: 1.导入外部的变量或函数等: import {firstName, lastName, ...
- Python标准模块--ContextManager
1 模块简介 在数年前,Python 2.5 加入了一个非常特殊的关键字,就是with.with语句允许开发者创建上下文管理器.什么是上下文管理器?上下文管理器就是允许你可以自动地开始和结束一些事情. ...
- Python标准模块--Unicode
1 模块简介 Python 3中最大的变化之一就是删除了Unicode类型.在Python 2中,有str类型和unicode类型,例如, Python 2.7.6 (default, Oct 26 ...
- Python标准模块--Iterators和Generators
1 模块简介 当你开始使用Python编程时,你或许已经使用了iterators(迭代器)和generators(生成器),你当时可能并没有意识到.在本篇博文中,我们将会学习迭代器和生成器是什么.当然 ...
- 自己实现一个javascript事件模块
nodejs中的事件模块 nodejs中有一个events模块,用来给别的函数对象提供绑定事件.触发事件的能力.这个别的函数的对象,我把它叫做事件宿主对象(非权威叫法),其原理是把宿主函数的原型链指向 ...
随机推荐
- VS2010 c/c++ 本地化 emscripten 配置
配置环境 1.下载emsdk-1.35.0-full-64bit.exe,有VS2010的话直接安装. 2.安装好之后,打开cmd,# emsdk update # emsdk install lat ...
- mac iterm2安装、sshpass密码记住
1. item2官网下载,自行安装 2. 导入以前生成的Prefiles文件到 /Users/alex/Library/Application Support/iTerm2/DynamicProfi ...
- vmware虚拟机安装CentOS-6.5教程
linux是企业最常用的服务器系统之一,CentOS是免费的,所以用的企业也挺多,今天给大家分享怎么在自己电脑的虚拟机中安装CentOS-6.5,以便用来玩耍,没事的时候可以学学linux的一些知识. ...
- WPF DataGrid自动生成序号
需求和效果 应用WPF技术进行开发的时候,大多都会遇到给DataGrid添加序号的问题,今天分享一下查阅了很多stackoverflow的文章后,总结和改进过来的方法,先看一下效果图,文末附Demo下 ...
- Spring4.0.1+Quartz2.2.1实现定时任务调度[亲测可用]
Spring4.0.1+Quartz2.2.1实现定时任务调度[亲测可用] tip:只需要配置xml文件即可 1.第三方依赖包的引入 <properties> <project.bu ...
- centos7安装shipyard没有本地容器及镜像
目前docker的使用越来越多,自然需要docker的管理工具.现在使用web管理的较多,web基本上实现了跨平台,只需要浏览器,不要额外的管理客户端.web管理主要推荐shipyard和kubern ...
- laravel框架包资源分享
最近发现laravel框架包很难下,楼楼之前下了两个版本,分享一下,希望对大家有所帮助.laravel-v5.2.15 链接: https://pan.baidu.com/s/1qYyhbFe 密码: ...
- 三、Spring的面向切面
Spring的面向切面 在应用开发中,有很多类似日志.安全和事务管理的功能.这些功能都有一个共同点,那就是很多个对象都需要这些功能.复用这些通用的功能的最简单的方法就是继承或者委托.但是当应用规模达到 ...
- 【转】S3C2440与SDRAM NorFlash NandFlash连线分析
一.SDRAM(HY57V561620F)连线分析 1. S3C2440 有27根地址线ADDR[26:0],8根片选信号ngcs0-ngcs7,对应bank0-bank7,当访问bankx 的地址 ...
- svn的简介
Svn(Subversion)是近年来崛起的版本管理工具,在当前的开源项目里(J2EE),几乎95%以上的项目都用到了SVN.Subversion项目的初衷是为了替换当年开源社区最为流行的版本控制软件 ...