Python ini文件常用操作方法解析


Posted in Python onApril 26, 2020

一、config.ini 配置文件

[DATABASE]
host = 192.1.1.1
username = root
password = root
port = 3306
database = jforum

[URL]
#ip,端口
ip =127.0.0.1
port= 8089

二、操作ini常用方法

--read():读取配置文件
--sections():读取配置文件中所有的section(如上配置文件:DATABASE,URL)
--options(section):读取该section下所有的option(可以理解成读取该组下的所有key,如options("URL"),值['ip', 'port'])
--items(section):读取该section下的所有key-vaule,并以键值对形式输出(如:sectioitems("URL"),值:[('ip', '127.0.0.1'), ('port', '8089')])
--get(section, option):读取指定section下面的option的值(可以理解成,读取具体某个section下面指定key的值,如config.get('URL','ip')),值:127.0.0.1)
--add_section(section):添加一个section,参数为section的名称
--set(section, option, value):在section下面添加一条数据(key=value)
--add与set需调用write(open(configPath, "a"))才可以写入ini文件 #参数a表示最近,w重写
--remove_seciton(seciton) 删除整个seciton
--config.remove_option(seciton,key) ,删除seciton的某个key值

三、源码举例

#!/usr/bin/python3
# encoding:utf-8
'''
Created on 2020-04-19 23:19
@author: Administrator
'''
import configparser
import os
from turtle import readconfig

#获取文件绝对路径 D:\common\
proDir = os.getcwd()
#拼接文件路径 D:\common\config.ini
configPath = os.path.join(proDir, "config.ini")

#创建管理对象
config = configparser.ConfigParser()
#读取配置类
class readConfig():
  #读取ini文件
  config.read(configPath, encoding="UTF-8")
  #获取所有的section
  @staticmethod
  def get_sections():
    return config.sections()
  @staticmethod
  def get_items(section):
    return config.items(section)
  @staticmethod
  def get_options(section):
    return config.options(section)
  @staticmethod
  def get_Vaule(section,name):
    value = config.get(section, name)
    return value
  @staticmethod
  def add_section():
    config.add_section('HTTP')
  @staticmethod
  def set_section(section, option, value):
    config.set(section, option, value)
  @staticmethod
  def remove_seciton(seciton):
    config.remove_section(seciton)
  @staticmethod
  def remove_seciton_value(seciton,key):
    config.remove_option(seciton,key)   
if __name__=='__main__':
  print('-----1.打印所有section')
  print(readConfig.get_sections())
  print('-----2.打印section=URL的所有key-Value值')
  print(readConfig.get_items("URL"))
  print('-----3.打印section=URL的所有key值')
  print(readConfig.get_options("URL"))
  print('-----4.打印section=URL,key=ip的value值')
  print(readConfig.get_Vaule('URL','ip'))
  print('-----5.新增之后打印所有section,注意有一个新增值HTTP')
  readConfig.add_section()
  print(readConfig.get_sections())
  print('-----6.新增section=HTTP,key=port,value=443,查看值,443为新增的值')
  readConfig.set_section('HTTP', 'port', '443')
  print(readConfig.get_Vaule('HTTP','port'))
  #上面的新增并不会真的真正写入,需加这个才能正在写入ini文件,如果参数为"w"则表示删除文件重新写入,"a"为追加模式写入
  #config.write(open(configPath, "a")) 
  print('-----7.删除sections=URL,打印所有sections,注意URL已被删除')
  readConfig.remove_seciton("URL")
  print(readConfig.get_sections())
  print('-----8.删除sections=DATABASE,key=host,打印所有key值,注意host已被删除')
  readConfig.remove_seciton_value('DATABASE','host')
  print(readConfig.get_options('DATABASE'))

运行结果

-----1.打印所有section
['DATABASE', 'URL']
-----2.打印section=URL的所有key-Value值
[('ip', '127.0.0.1'), ('port', '8089')]
-----3.打印section=URL的所有key值
['ip', 'port']
-----4.打印section=URL,key=ip的value值
127.0.0.1
-----5.新增之后打印所有section,注意有一个新增值HTTP
['DATABASE', 'URL', 'HTTP']
-----6.新增section=HTTP,key=port,value=443,查看值,443为新增的值
443
-----7.删除sections=URL,打印所有sections,注意URL已被删除
['DATABASE', 'HTTP']
-----8.删除sections=DATABASE,key=host,打印所有key值,注意host已被删除
['username', 'password', 'port', 'database']

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python中__name__的使用实例
Apr 14 Python
Python3爬虫爬取百姓网列表并保存为json功能示例【基于request、lxml和json模块】
Dec 05 Python
在python2.7中用numpy.reshape 对图像进行切割的方法
Dec 05 Python
使用Python进行体育竞技分析(预测球队成绩)
May 16 Python
python连接PostgreSQL数据库的过程详解
Sep 18 Python
Python requests模块基础使用方法实例及高级应用(自动登陆,抓取网页源码)实例详解
Feb 14 Python
pyspark给dataframe增加新的一列的实现示例
Apr 24 Python
Python-opencv实现红绿两色识别操作
Jun 04 Python
linux centos 7.x 安装 python3.x 替换 python2.x的过程解析
Dec 14 Python
Python 机器学习工具包SKlearn的安装与使用
May 14 Python
Python实现byte转integer
Jun 03 Python
Python 如何将integer转化为罗马数(3999以内)
Jun 05 Python
python实现音乐播放和下载小程序功能
Apr 26 #Python
使用Python内置模块与函数进行不同进制的数的转换
Apr 26 #Python
Python接口开发实现步骤详解
Apr 26 #Python
使用tensorflow框架在Colab上跑通猫狗识别代码
Apr 26 #Python
Python request使用方法及问题总结
Apr 26 #Python
Python基于paramunittest模块实现excl参数化
Apr 26 #Python
在python里创建一个任务(Task)实例
Apr 25 #Python
You might like
融入意大利的咖啡文化
2021/03/03 咖啡文化
PHP4 与 MySQL 交互使用
2006/10/09 PHP
真正根据utf8编码的规律来进行截取字符串的函数(utf8版sub_str )
2012/10/24 PHP
php获取远程图片并下载保存到本地的方法分析
2016/10/08 PHP
ThinkPHP5.1验证码功能实现的示例代码
2020/06/08 PHP
JavaScript 动态改变图片大小
2009/06/11 Javascript
AppBaseJs 类库 网上常用的javascript函数及其他js类库写的
2010/03/04 Javascript
解析jQuery与其它js(Prototype)库兼容共存
2013/07/04 Javascript
巧用jquery解决下拉菜单被Div遮挡的相关问题
2014/02/13 Javascript
javascript中的事件代理初探
2014/03/08 Javascript
iframe实用操作锦集
2014/04/22 Javascript
JavaScript中对象property的读取和写入方法介绍
2014/12/30 Javascript
JS实现文字链接感应鼠标淡入淡出改变颜色的方法
2015/02/26 Javascript
JS实现跟随鼠标立体翻转图片的方法
2015/05/04 Javascript
JavaScript截取、切割字符串的技巧
2016/01/07 Javascript
IScroll5 中文API参数说明和调用方法
2016/05/21 Javascript
Bootstrap表格制作代码
2017/03/17 Javascript
jQuery中内容过滤器简单用法示例
2018/03/31 jQuery
vue.js轮播图组件使用方法详解
2018/07/03 Javascript
vue中使用props传值的方法
2019/05/08 Javascript
Vue中常用rules校验规则(实例代码)
2019/11/14 Javascript
微信小程序关键字变色实现代码实例
2019/12/13 Javascript
js滚轮事件 js自定义滚动条的实现
2020/01/18 Javascript
JavaScript如何实现防止重复的网络请求的示例
2021/01/28 Javascript
[02:22]《新闻直播间》2017年08月14日
2017/08/15 DOTA
PHP网页抓取之抓取百度贴吧邮箱数据代码分享
2016/04/13 Python
利用Python中unittest实现简单的单元测试实例详解
2017/01/09 Python
详谈Python3 操作系统与路径 模块(os / os.path / pathlib)
2018/04/26 Python
Django JWT Token RestfulAPI用户认证详解
2019/01/23 Python
python os模块简单应用示例
2019/05/23 Python
利用Python将图片中扭曲矩形的复原
2020/09/07 Python
5 个强大的HTML5 API 函数推荐
2014/11/19 HTML / CSS
电子狗项圈:eDog Australia
2019/12/04 全球购物
说说在weblogic中开发消息Bean时的persistent与non-persisten的差别
2013/04/07 面试题
2016年小学生教师节广播稿
2015/12/18 职场文书
《领导干部从政道德启示录》学习心得体会
2016/01/20 职场文书