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使用os模块的os.walk遍历文件夹示例
Jan 27 Python
python实现文件分组复制到不同目录的例子
Jun 04 Python
python实现二叉树的遍历
Dec 11 Python
利用python对Excel中的特定数据提取并写入新表的方法
Jun 14 Python
使用Python的toolz库开始函数式编程的方法
Nov 15 Python
python实现简单图片物体标注工具
Mar 18 Python
Python实现把多维数组展开成DataFrame
Nov 30 Python
Python post请求实现代码实例
Feb 28 Python
python GUI库图形界面开发之PyQt5动态(可拖动控件大小)布局控件QSplitter详细使用方法与实例
Mar 06 Python
Python GUI编程学习笔记之tkinter事件绑定操作详解
Mar 30 Python
Python使用matplotlib绘制圆形代码实例
May 27 Python
python输出国际象棋棋盘的实例分享
Nov 26 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合并静态文件详解
2014/11/14 PHP
php实现指定字符串中查找子字符串的方法
2015/03/17 PHP
100行PHP代码实现socks5代理服务器
2016/04/28 PHP
jquery 如何动态添加、删除class样式方法介绍
2012/11/07 Javascript
JS设置cookie、读取cookie、删除cookie
2015/04/17 Javascript
浏览器复制插件zeroclipboard使用指南
2016/03/26 Javascript
深入理解JavaScript中的浮点数
2016/05/18 Javascript
通过BootStrap实现轮播图的实际应用
2016/09/26 Javascript
Javascript 闭包详解及实例代码
2016/11/30 Javascript
js实现图片360度旋转
2017/01/22 Javascript
微信小程序使用image组件显示图片的方法【附源码下载】
2017/12/08 Javascript
微信小程序实现动态设置placeholder提示文字及按钮选中/取消状态的方法
2017/12/14 Javascript
微信小程序用户授权,以及判断登录是否过期的方法
2019/05/10 Javascript
nodejs实现用户登录路由功能
2019/05/22 NodeJs
浅谈Vue.js之初始化el以及数据的绑定说明
2019/11/14 Javascript
[02:49:21]2019完美盛典全程录像
2019/12/08 DOTA
python去掉行尾的换行符方法
2017/01/04 Python
使用pycharm生成代码模板的实例
2018/05/23 Python
django之跨表查询及添加记录的示例代码
2018/10/16 Python
Python中的集合介绍
2019/01/28 Python
python内存动态分配过程详解
2019/07/15 Python
python2.7的flask框架之引用js&css等静态文件的实现方法
2019/08/22 Python
Python flask框架如何显示图像到web页面
2020/06/03 Python
python如何建立全零数组
2020/07/19 Python
Python lxml库的简单介绍及基本使用讲解
2020/12/22 Python
Html5 web本地存储实例详解
2016/07/28 HTML / CSS
TUMI澳大利亚网站:美国旅行箱包品牌
2017/03/27 全球购物
校园创业策划书
2014/01/14 职场文书
金融专业毕业生自荐信
2014/06/26 职场文书
计算机多媒体专业自荐信
2014/07/04 职场文书
好媳妇事迹材料
2014/12/24 职场文书
2015学校六五普法工作总结
2015/04/22 职场文书
Python爬虫爬取全球疫情数据并存储到mysql数据库的步骤
2021/03/29 Python
AJAX实现省市县三级联动效果
2021/10/16 Javascript
SQL Server #{}可以防止SQL注入
2022/05/11 SQL Server
windows server2016安装oracle 11g的图文教程
2022/07/15 Servers