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 threading多线程编程实例
Sep 18 Python
Python随机生成一个6位的验证码代码分享
Mar 24 Python
Python升级导致yum、pip报错的解决方法
Sep 06 Python
python九九乘法表的实例
Sep 26 Python
python中类的属性和方法介绍
Nov 27 Python
对Python3之进程池与回调函数的实例详解
Jan 22 Python
33个Python爬虫项目实战(推荐)
Jul 08 Python
python正则表达式匹配不包含某几个字符的字符串方法
Jul 23 Python
Python如何基于rsa模块实现非对称加密与解密
Jan 03 Python
pytorch 利用lstm做mnist手写数字识别分类的实例
Jan 10 Python
Python3使用腾讯云文字识别(腾讯OCR)提取图片中的文字内容实例详解
Feb 18 Python
Python celery原理及运行流程解析
Jun 13 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 UTF-8、Unicode和BOM问题
2010/05/18 PHP
比较strtr, str_replace和preg_replace三个函数的效率
2013/06/26 PHP
PHP获取浏览器信息类和客户端地理位置的2个方法
2014/04/24 PHP
php使用curl并发减少后端访问时间的方法分析
2016/05/12 PHP
PHP-X系列教程之内置函数的使用示例
2017/10/16 PHP
PHP对称加密算法(DES/AES)类的实现代码
2017/11/14 PHP
Laravel中服务提供者和门面模式的入门介绍
2017/11/06 PHP
PHP自定义递归函数实现数组转JSON功能【支持GBK编码】
2018/07/17 PHP
jquery控制select的text/value值为选中状态
2014/06/03 Javascript
jquery实现textarea 高度自适应
2015/03/11 Javascript
基于jquery实现页面滚动到底自动加载数据的功能
2015/12/19 Javascript
js纯数字逐一停止显示效果的实现代码
2016/03/16 Javascript
JavaScript获取css行间样式,内连样式和外链样式的简单方法
2016/07/18 Javascript
AngularJs Understanding the Controller Component
2016/09/02 Javascript
JS瀑布流实现方法实例分析
2016/12/19 Javascript
详解vue.js全局组件和局部组件
2017/04/10 Javascript
Angular.js中$resource高大上的数据交互详解
2017/07/30 Javascript
js原生日历的实例(推荐)
2017/10/31 Javascript
jquery ui 实现 tab标签功能示例【测试可用】
2019/07/25 jQuery
[01:01]青春无憾,一战成名——DOTA2全国高校联赛开启
2018/02/25 DOTA
[03:35]2018年度DOTA2最佳辅助位选手5号位-完美盛典
2018/12/17 DOTA
[00:44]华丽开场!DOTA2勇士令状带来全新对阵画面
2019/05/15 DOTA
Python实现的插入排序算法原理与用法实例分析
2017/11/22 Python
python-itchat 统计微信群、好友数量,及原始消息数据的实例
2019/02/21 Python
python实现连连看辅助之图像识别延伸
2019/07/17 Python
python+opencv3.4.0 实现HOG+SVM行人检测的示例代码
2021/01/28 Python
HTML5 visibilityState属性详细介绍和使用实例
2014/05/03 HTML / CSS
学年自我鉴定范文
2013/10/01 职场文书
银行存款证明样本
2014/01/17 职场文书
物流创业计划书
2014/02/01 职场文书
社会学专业学生职业规划书
2014/02/07 职场文书
遥感技术与仪器求职信
2014/02/22 职场文书
《美丽的公鸡》教学反思
2014/02/25 职场文书
Python爬虫之爬取二手房信息
2021/04/27 Python
Go中的条件语句Switch示例详解
2021/08/23 Golang
springboot如何接收application/x-www-form-urlencoded类型的请求
2021/11/02 Java/Android