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抓取框架Scrapy爬虫入门:页面提取
Dec 01 Python
Python 读取指定文件夹下的所有图像方法
Apr 27 Python
Python爬虫框架Scrapy基本用法入门教程
Jul 26 Python
Windows下将Python文件打包成.EXE可执行文件的方法
Aug 03 Python
Django框架模板注入操作示例【变量传递到模板】
Dec 19 Python
python之列表推导式的用法
Nov 29 Python
Python 实现判断图片格式并转换,将转换的图像存到生成的文件夹中
Jan 13 Python
python标准库os库的函数介绍
Feb 12 Python
Django之富文本(获取内容,设置内容方式)
May 21 Python
基于Python下载网络图片方法汇总代码实例
Jun 24 Python
Python如何给你的程序做性能测试
Jul 29 Python
Python排序函数的使用方法详解
Dec 11 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可变函数的使用详解
2013/06/14 PHP
php function用法如何递归及return和echo区别
2014/03/07 PHP
php限制上传文件类型并保存上传文件的方法
2015/03/13 PHP
WordPress中缩略图的使用以及相关技巧
2015/11/24 PHP
ThinkPHP3.2.1图片验证码实现方法
2016/08/19 PHP
Smarty模板常见的简单应用分析
2016/11/15 PHP
PHP给前端返回一个JSON对象的实例讲解
2018/05/31 PHP
thinkPHP框架实现的短信接口验证码功能示例
2018/06/20 PHP
PHP里的$_GET数组介绍
2019/03/22 PHP
lib.utf.js
2007/08/21 Javascript
jQuery的实现原理的模拟代码 -4 重要的扩展函数 extend
2010/08/03 Javascript
30个精美的jQuery幻灯片效果插件和教程
2011/08/23 Javascript
用dtree实现树形菜单 dtree使用说明
2011/10/17 Javascript
JsRender实用入门教程
2014/10/31 Javascript
jQuery中element选择器用法实例
2014/12/29 Javascript
深入理解关于javascript中apply()和call()方法的区别
2016/04/12 Javascript
jQuery判断元素是否显示 是否隐藏的简单实现代码
2016/05/19 Javascript
JS提示:Uncaught SyntaxError: Unexpected token ILLEGAL错误的解决方法
2016/08/19 Javascript
ajax的分页查询示例(不刷新页面)
2017/01/11 Javascript
JS实现websocket长轮询实时消息提示的效果
2017/10/10 Javascript
JS实现留言板功能[楼层效果展示]
2017/12/27 Javascript
React如何避免重渲染
2018/04/10 Javascript
ES6 系列之 WeakMap的使用示例
2018/08/06 Javascript
Vue实现图片与文字混输效果
2019/12/04 Javascript
解决vue项目本地启动时无法携带cookie的问题
2021/02/06 Vue.js
Python中lambda的用法及其与def的区别解析
2014/07/28 Python
在Python中使用poplib模块收取邮件的教程
2015/04/29 Python
Python数据可视化正态分布简单分析及实现代码
2017/12/04 Python
python取代netcat过程分析
2018/02/10 Python
Puppeteer使用示例详解
2019/06/20 Python
python 追踪except信息方式
2020/04/25 Python
在pycharm中使用matplotlib.pyplot 绘图时报错的解决
2020/06/01 Python
彪马俄罗斯官网:PUMA俄罗斯
2019/07/13 全球购物
股份合作协议书
2014/04/12 职场文书
党的群众路线教育实践活动方案
2014/10/31 职场文书
离职报告格式
2014/11/04 职场文书