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 相关文章推荐
Django框架中的对象列表视图使用示例
Jul 21 Python
python数据处理实战(必看篇)
Jun 11 Python
python技能之数据导出excel的实例代码
Aug 11 Python
详解Python中的Numpy、SciPy、MatPlotLib安装与配置
Nov 17 Python
pandas.DataFrame 根据条件新建列并赋值的方法
Apr 08 Python
python自动化报告的输出用例详解
May 30 Python
75条笑死人的知乎神回复,用60行代码就爬完了
May 06 Python
详解Python中正则匹配TAB及空格的小技巧
Jul 26 Python
python3.6 tkinter实现屏保小程序
Jul 30 Python
Django中自定义模型管理器(Manager)及方法
Sep 23 Python
Python监控服务器实用工具psutil使用解析
Dec 19 Python
python GUI库图形界面开发之PyQt5打印控件QPrinter详细使用方法与实例
Feb 28 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的HTTP请求的库Requests实现美女图片墙
2015/02/22 PHP
php自定义urlencode,urldecode函数实例
2015/03/24 PHP
基于JQUERY的两个ListBox子项互相调整的实现代码
2011/05/07 Javascript
jQuery表格插件ParamQuery简单使用方法示例
2013/12/05 Javascript
JS实现将人民币金额转换为大写的示例代码
2014/02/13 Javascript
JavaScript获取XML数据附示例截图
2014/03/05 Javascript
jQuery修改li下的样式以及li下的img的src的值的方法
2014/11/02 Javascript
javascript实现类似百度分享功能的方法
2015/07/27 Javascript
JQ技术实现注册页面带有校验密码强度
2015/07/27 Javascript
JS获取地址栏参数的两种方法(简单实用)
2016/06/14 Javascript
Javascript 跨域知识详细介绍
2016/10/30 Javascript
JavaScript制作简单的框选图表
2017/05/15 Javascript
Jquery实现获取子元素的方法分析
2019/08/24 jQuery
JS Ajax请求会话过期处理问题解决方法分析
2019/11/16 Javascript
Js代码中的span拼接问题解决
2019/11/22 Javascript
Vue实现仿iPhone悬浮球的示例代码
2020/03/13 Javascript
Selenium执行Javascript脚本参数及返回值过程详解
2020/04/01 Javascript
python操作xlsx文件的包openpyxl实例
2018/05/03 Python
tensorflow 输出权重到csv或txt的实例
2018/06/14 Python
Python中反射和描述器总结
2018/09/23 Python
对python读取zip压缩文件里面的csv数据实例详解
2019/02/08 Python
20行Python代码实现一款永久免费PDF编辑工具的实现
2020/08/27 Python
5款实用的python 工具推荐
2020/10/13 Python
Python爬虫开发与项目实战
2020/12/16 Python
python 如何读、写、解析CSV文件
2021/03/03 Python
基于HTML5实现类似微信手机摇一摇功能(计算摇动次数)
2017/07/24 HTML / CSS
美国优质马术服装购买网站:Breeches.com
2019/12/16 全球购物
法学专业应届生求职信
2013/10/16 职场文书
大学生创业计划书的用途
2014/01/08 职场文书
孝敬父母的活动方案
2014/08/28 职场文书
2015毕业实习推荐信
2015/03/23 职场文书
2015年班组建设工作总结
2015/05/13 职场文书
学困生帮扶工作总结
2015/08/13 职场文书
pytorch 如何把图像数据集进行划分成train,test和val
2021/05/31 Python
一文了解MYSQL三大范式和表约束
2022/04/03 MySQL
解决ubuntu安装软件时,status-code=409报错的问题
2022/12/24 Servers