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生成器(Generator)详解
Apr 13 Python
Python 自动刷博客浏览量实例代码
Jun 14 Python
PyTorch线性回归和逻辑回归实战示例
May 22 Python
python requests 测试代理ip是否生效
Jul 25 Python
Flask框架 CSRF 保护实现方法详解
Oct 30 Python
Tensorflow的常用矩阵生成方式
Jan 04 Python
opencv python 图片读取与显示图片窗口未响应问题的解决
Apr 24 Python
Python使用matplotlib绘制圆形代码实例
May 27 Python
python实现在线翻译
Jun 18 Python
Python实现爬取网页中动态加载的数据
Aug 17 Python
基于Python实现体育彩票选号器功能代码实例
Sep 16 Python
Python连接Postgres/Mysql/Mongo数据库基本操作大全
Jun 29 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文件注释标记及规范小结
2012/04/01 PHP
php页面跳转代码 输入网址跳转到你定义的页面
2013/03/28 PHP
Ubuntu server 11.04安装memcache及php使用memcache来存储session的方法
2016/05/31 PHP
PHP PDO和消息队列的个人理解与应用实例分析
2019/11/25 PHP
PHP实现倒计时功能
2020/11/16 PHP
jquery调用asp.net 页面后台的实现代码
2011/04/27 Javascript
Json对象与Json字符串互转(4种转换方式)
2013/03/27 Javascript
浅谈JavaScript正则表达式分组匹配
2015/04/10 Javascript
AngularJS实现根据变量改变动态加载模板的方法
2016/11/04 Javascript
JS实现动态修改table及合并单元格的方法示例
2017/02/20 Javascript
js原生Ajax的封装和原理详解
2017/03/11 Javascript
深入理解jquery的$.extend()、$.fn和$.fn.extend()
2017/07/08 jQuery
详解node服务器中打开html文件的两种方法
2017/09/18 Javascript
Koa代理Http请求的示例代码
2018/10/10 Javascript
解决node-sass偶尔安装失败的方法小结
2018/12/05 Javascript
如何使用pm2快速将项目部署到远程服务器
2019/03/12 Javascript
JavaScript中break、continue和return的用法区别实例分析
2020/03/02 Javascript
关于Vue中$refs的探索浅析
2020/11/05 Javascript
Python中用format函数格式化字符串的用法
2015/04/08 Python
django站点管理详解
2017/12/12 Python
python2.7无法使用pip的解决方法(安装easy_install)
2018/04/03 Python
在python3中使用shuffle函数要注意的地方
2020/02/28 Python
jupyter notebook 重装教程
2020/04/16 Python
Python使用socket模块实现简单tcp通信
2020/08/18 Python
利用Python将多张图片合成视频的实现
2020/11/23 Python
全球最大的在线旅游公司:Expedia
2017/11/16 全球购物
就业自荐信
2013/12/04 职场文书
多媒体教室标语
2014/06/26 职场文书
英语课外活动总结
2014/08/27 职场文书
学生实习证明模板汇总
2014/09/25 职场文书
大学生第一学年自我鉴定2015
2014/09/28 职场文书
单位单身证明样本
2014/10/11 职场文书
幼儿教师辞职信
2015/02/27 职场文书
离婚承诺书格式范文
2015/05/04 职场文书
html5中sharedWorker实现多页面通信的示例代码
2021/05/07 Javascript
详解使用 CSS prefers-* 规范提升网站的可访问性与健壮性
2021/05/25 HTML / CSS