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制作简单的朴素基数估计器的教程
Apr 01 Python
在Python 3中实现类型检查器的简单方法
Jul 03 Python
关于Python中异常(Exception)的汇总
Jan 18 Python
Python入门_浅谈for循环、while循环
May 16 Python
pytorch 数据集图片显示方法
Jul 26 Python
Python中collections模块的基本使用教程
Dec 07 Python
Python分析彩票记录并预测中奖号码过程详解
Jul 09 Python
python 命令行传入参数实现解析
Aug 30 Python
Django中ORM找出内容不为空的数据实例
May 20 Python
python实现数字炸弹游戏
Jul 17 Python
python实现二分查找算法
Sep 18 Python
总结Python连接CS2000的详细步骤
Jun 23 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数组实现无限分类,不使用数据库,不使用递归.
2006/12/09 PHP
生成ubuntu自动切换壁纸xml文件的php代码
2010/07/17 PHP
PHP实现手机号码中间四位用星号(*)隐藏的自定义函数分享
2014/09/27 PHP
php eval函数一句话木马代码
2015/05/21 PHP
ThinkPHP中where()使用方法详解
2016/04/19 PHP
PHP识别二维码的方法(php-zbarcode安装与使用)
2016/07/07 PHP
JSON 学习之JSON in JavaScript详细使用说明
2010/02/23 Javascript
jQuery ajax 路由和过滤器使用说明
2011/08/02 Javascript
js形成页面的一种遮罩效果实例代码
2014/01/04 Javascript
JS获取网页属性包括宽、高等等
2014/04/03 Javascript
常见的jQuery选择器汇总
2014/11/24 Javascript
angularjs中的e2e测试实例
2014/12/06 Javascript
jQuery使用empty()方法删除元素及其所有子元素的方法
2015/03/26 Javascript
js实现从右向左缓缓浮出网页浮动层广告的方法
2015/05/09 Javascript
jQuery实现ajax的叠加和停止(终止ajax请求)
2016/08/08 Javascript
jQuery表单对象属性过滤选择器实例详解
2016/09/13 Javascript
Bootstrap免费字体和图标网站(值得收藏)
2017/03/16 Javascript
ES6中参数的默认值语法介绍
2017/05/03 Javascript
jQuery简单绑定单个事件的方法示例
2017/06/10 jQuery
解决bootstrap模态框数据缓存的问题方法
2018/08/10 Javascript
JS实现的点击按钮图片上下滚动效果示例
2019/01/28 Javascript
Vue页面跳转传递参数及接收方式
2020/09/09 Javascript
Python实现获取域名所用服务器的真实IP
2015/10/25 Python
Python实现基于C/S架构的聊天室功能详解
2018/07/07 Python
python版opencv摄像头人脸实时检测方法
2018/08/03 Python
python去重,一个由dict组成的list的去重示例
2019/01/21 Python
在PyCharm中控制台输出日志分层级分颜色显示的方法
2019/07/11 Python
python redis 批量设置过期key过程解析
2019/11/26 Python
Python 基于wxpy库实现微信添加好友功能(简洁)
2019/11/29 Python
opencv python图像梯度实例详解
2020/02/04 Python
Tensorflow: 从checkpoint文件中读取tensor方式
2020/02/10 Python
捷克鲜花配送:Florea.cz
2018/10/29 全球购物
阿迪达斯印尼官方网站:adidas印尼
2020/02/10 全球购物
教师专业自荐书范文
2014/02/10 职场文书
2015世界地球日活动总结
2015/02/09 职场文书
通讯稿格式及范文
2015/07/22 职场文书