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 相关文章推荐
Python3中多线程编程的队列运作示例
Apr 16 Python
python方向键控制上下左右代码
Jan 20 Python
通过Python 接口使用OpenCV的方法
Apr 02 Python
Python实现随机创建电话号码的方法示例
Dec 07 Python
使用python进行波形及频谱绘制的方法
Jun 17 Python
python的几种矩阵相乘的公式详解
Jul 10 Python
Pytorch训练过程出现nan的解决方式
Jan 02 Python
Python bytes string相互转换过程解析
Mar 05 Python
python+requests接口压力测试500次,查看响应时间的实例
Apr 30 Python
30行Python代码实现高分辨率图像导航的方法
May 22 Python
keras导入weights方式
Jun 12 Python
python爬虫中url管理器去重操作实例
Nov 30 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+java实现自动新闻滚动窗口
2006/10/09 PHP
php 数据库字段复用的基本原理与示例
2011/07/22 PHP
10个超级有用值得收藏的PHP代码片段
2015/01/22 PHP
Yii框架中使用PHPExcel的方法分析
2019/07/25 PHP
JavaScript window.setTimeout() 的详细用法
2009/11/04 Javascript
jQuery多媒体插件jQuery Media Plugin使用详解
2014/12/19 Javascript
javascript实现动态改变层大小的方法
2015/05/14 Javascript
jQuery超酷平面式时钟效果代码分享
2020/03/30 Javascript
在ASP.NET MVC项目中使用RequireJS库的用法示例
2016/02/15 Javascript
不同js异步函数同步的实现方法
2016/05/28 Javascript
jQuery实现的导航下拉菜单效果示例
2016/09/05 Javascript
解决给dom元素绑定click等事件无效问题的方法
2017/02/17 Javascript
Angular.js与node.js项目里用cookie校验账户登录详解
2017/02/22 Javascript
一步步教你利用Canvas对图片进行处理
2017/09/19 Javascript
this在vue和小程序中的使用详解
2019/01/28 Javascript
[01:56]林书豪DOTA2上海特级锦标赛励志短片
2016/03/05 DOTA
讲解Python中运算符使用时的优先级
2015/05/14 Python
在Python的Django框架中生成CSV文件的方法
2015/07/22 Python
让python 3支持mysqldb的解决方法
2017/02/14 Python
python通过socket实现多个连接并实现ssh功能详解
2017/11/08 Python
python opencv3实现人脸识别(windows)
2018/05/25 Python
Django配置celery(非djcelery)执行异步任务和定时任务
2018/07/16 Python
详解python分布式进程
2018/10/08 Python
python字符串替换第一个字符串的方法
2019/06/26 Python
Python Pandas数据中对时间的操作
2019/07/30 Python
Python基于jieba, wordcloud库生成中文词云
2020/05/13 Python
python利用xpath爬取网上数据并存储到django模型中
2021/02/26 Python
美国嘻哈文化生活方式品牌:GLD
2018/04/15 全球购物
KENZO官网:高田贤三在法国创立的品牌
2019/05/16 全球购物
绢花、人造花和人造花卉:BLOOM
2019/08/07 全球购物
Wiggle新西兰:自行车、跑步、游泳
2020/05/06 全球购物
业务部经理岗位职责
2014/01/04 职场文书
秋季运动会活动方案
2014/02/05 职场文书
查摆问题对照检查材料
2014/08/28 职场文书
Python爬虫基础初探selenium
2021/05/31 Python
MySQL连接控制插件介绍
2021/09/25 MySQL