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 命令行参数sys.argv
Sep 06 Python
python实现逆波兰计算表达式实例详解
May 06 Python
Python的Asyncore异步Socket模块及实现端口转发的例子
Jun 14 Python
Python 通过pip安装Django详细介绍
Apr 28 Python
linux环境下python中MySQLdb模块的安装方法
Jun 16 Python
NLTK 3.2.4 环境搭建教程
Sep 19 Python
Python如何读取文件中图片格式
Jan 13 Python
Python 解决火狐浏览器不弹出下载框直接下载的问题
Mar 09 Python
python 中的命名空间,你真的了解吗?
Aug 19 Python
python利用pytesseract 实现本地识别图片文字
Dec 14 Python
Python获取指定网段正在使用的IP
Dec 14 Python
Python3.9.0 a1安装pygame出错解决全过程(小结)
Feb 02 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下实现伪 url 的超简单方法[转]
2007/09/24 PHP
php 备份数据库代码(生成word,excel,json,xml,sql)
2013/06/23 PHP
PHP实现自动识别Restful API的返回内容类型
2015/02/07 PHP
如何解决PHP使用mysql_query查询超大结果集超内存问题
2016/03/14 PHP
thinkphp利用模型通用数据编辑添加和删除的实例代码
2016/11/20 PHP
PHP批量删除jQuery操作
2017/07/23 PHP
PHP字符串中抽取子串操作实例分析
2019/06/22 PHP
js 匿名调用实现代码
2009/06/19 Javascript
jquery 新浪网易的评论块制作
2010/07/01 Javascript
jQuery在IE下使用未闭合的xml代码创建元素时的Bug介绍
2012/01/10 Javascript
node.js中的fs.readlink方法使用说明
2014/12/17 Javascript
javascript使用for循环批量注册的事件不能正确获取索引值的解决方法
2014/12/20 Javascript
js的toLowerCase方法用法实例
2015/01/27 Javascript
JavaScript中实现单体模式分享
2015/01/29 Javascript
Jquery幻灯片特效代码分享--打开页面随机选择切换方式(3)
2015/08/15 Javascript
Bootstrap模态框案例解析
2017/03/05 Javascript
前端图片懒加载(lazyload)的实现方法(提高用户体验)
2017/08/21 Javascript
JS实现在文本指定位置插入内容的简单示例
2017/12/22 Javascript
vue-router路由模式详解(小结)
2019/08/26 Javascript
5分钟快速看懂ES6中的反射与代理
2019/12/19 Javascript
JavaScript进阶(二)词法作用域与作用域链实例分析
2020/05/09 Javascript
[01:04:20]完美世界DOTA2联赛PWL S2 LBZS vs Forest 第一场 11.29
2020/12/02 DOTA
Python 正则表达式操作指南
2009/05/04 Python
flask-socketio实现WebSocket的方法
2018/07/31 Python
python tkinter GUI绘制,以及点击更新显示图片代码
2020/03/14 Python
通过代码实例解析Pytest运行流程
2020/08/20 Python
pytorch简介
2020/11/11 Python
纯CSS3实现表单验证效果(非常不错)
2017/01/18 HTML / CSS
用HTML5 Canvas API中的clearRect()方法实现橡皮擦功能
2016/03/15 HTML / CSS
世界著名的顶级牛排:Omaha Steak(奥马哈牛排)
2016/09/20 全球购物
法律专业推荐信范文
2013/11/29 职场文书
篝火晚会主持词
2014/03/25 职场文书
幼儿园个人师德总结
2015/02/06 职场文书
2016毕业实习单位评语大全
2015/12/01 职场文书
Vue组件化(ref,props, mixin,.插件)详解
2022/05/15 Vue.js
windows server2016安装oracle 11g的图文教程
2022/07/15 Servers