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网络编程学习笔记(二):socket建立网络客户端
Jun 09 Python
Python中声明只包含一个元素的元组数据方法
Aug 25 Python
Python中内置数据类型list,tuple,dict,set的区别和用法
Dec 14 Python
python数据预处理之将类别数据转换为数值的方法
Jul 05 Python
python生成器与迭代器详解
Jan 01 Python
Django实现发送邮件找回密码功能
Aug 12 Python
用Python将Excel数据导入到SQL Server的例子
Aug 24 Python
使用虚拟环境打包python为exe 文件的方法
Aug 29 Python
python中time库的实例使用方法
Oct 31 Python
新手入门学习python Numpy基础操作
Mar 02 Python
使用Python三角函数公式计算三角形的夹角案例
Apr 15 Python
浅谈多卡服务器下隐藏部分 GPU 和 TensorFlow 的显存使用设置
Jun 30 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
PHP三元运算符的结合性介绍
2012/01/10 PHP
php中实现精确设置session过期时间的方法
2014/07/17 PHP
从刷票了解获得客户端IP的方法
2015/09/21 PHP
php构造方法中析构方法在继承中的表现
2016/04/12 PHP
Yii 2.0实现联表查询加搜索分页的方法示例
2017/08/02 PHP
PHP实现微信小程序人脸识别刷脸登录功能
2018/05/24 PHP
Laravel框架集成UEditor编辑器的方法图文与实例详解
2019/04/17 PHP
jquery 面包屑导航 具体实现
2013/06/05 Javascript
Jquery倒数计时按钮setTimeout的实例代码
2013/07/04 Javascript
jquery ajax应用中iframe自适应高度问题解决方法
2014/04/12 Javascript
JavaScript中for循环的使用详解
2015/06/03 Javascript
理解javascript闭包
2015/12/15 Javascript
JS+CSS实现鼠标经过弹出一个DIV框完整实例(带缓冲动画渐变效果)
2016/03/25 Javascript
Javascript小技能总结(推荐)
2016/06/02 Javascript
JS实现复制内容到剪贴板功能兼容所有浏览器(推荐)
2016/06/17 Javascript
vue2.0实现导航菜单切换效果
2017/05/08 Javascript
利用纯JS实现像素逐渐显示的方法示例
2017/08/14 Javascript
微信小程序picker组件简单用法示例【附demo源码下载】
2017/12/05 Javascript
在 Typescript 中使用可被复用的 Vue Mixin功能
2018/04/17 Javascript
vue.js中toast用法及使用toast弹框的实例代码
2018/08/27 Javascript
vue多个元素的样式选择器问题
2019/11/29 Javascript
原生JS利用transform实现banner的无限滚动示例代码
2020/06/15 Javascript
Python使用ftplib实现简易FTP客户端的方法
2015/06/03 Python
pytorch 数据集图片显示方法
2018/07/26 Python
python顺序执行多个py文件的方法
2019/06/29 Python
python自定义时钟类、定时任务类
2021/02/22 Python
使用Keras预训练模型ResNet50进行图像分类方式
2020/05/23 Python
Django路由层URLconf作用及原理解析
2020/09/24 Python
如何让IE9以下版本(ie6/7/8)认识html5元素
2013/04/01 HTML / CSS
跨域修改iframe页面内容详解
2019/10/31 HTML / CSS
领导干部考察材料
2014/02/08 职场文书
生物制药专业求职信
2014/03/11 职场文书
2014镇党委班子对照检查材料思想汇报
2014/09/23 职场文书
小学秋季运动会报道稿
2014/09/30 职场文书
合作合同协议书范本
2015/01/27 职场文书
2015年司机工作总结
2015/04/23 职场文书