python操作ini类型配置文件的实例教程
作者:杰森斯坦森1150 发布时间:2021-05-12 13:11:23
标签:python,ini,类型
一、ini文件介绍
INI文件格式是某些平台或软件上的配置文件的非正式标准,以节(section)和键(key)构成,常用于微软Windows操作系统中。这种配置文件的文件扩展名多为INI
二、ini文件的结构
片段[section]
键名 option
值 value
三、实例:
实例1
python25.ini
[teachers]
name = ['yushen', 'pianpian']
age = 16
gender = '女'
favor = {"movie": "追风", "music": "周杰伦"}
[student]
name = ['啦啦迷弟', '啦啦迷妹']
age = 18
操作ini文件
from configparser import ConfigParser
# 初始化
config = ConfigParser()
# 读取文件
config.read('python25.ini', encoding='utf-8')
a = config.get('teachers', 'name')
print(a)
print(type(a))
运行结果如下:
实例2
fz.ini
读取fz.ini文件代码:
import configparser
import os
curpath = os.path.dirname(os.path.realpath(__file__))
cfgpath = os.path.join(curpath, "fz.ini")
# fz.ini的路径
print(cfgpath)
# 创建管理对象
conf = configparser.ConfigParser()
# 读ini文件
conf.read(cfgpath, encoding="utf-8")
# 获取所有的section
sections = conf.sections()
# 返回list
print(sections)
items = conf.items('oracle')
# list里面对象是元祖
print(items)
运行结果:
实例3,封装升级
set修改,add添加,write写入、remove删除
此封装实现以下功能:
获取sections列表
获取指定的section的options列表
获取指定section的配置信息列表
按类型读取配置信息
新增section
设置指定option值
删除指定section
删除指定option
# -*- coding:utf-8 -*-
from configparser import ConfigParser
import os
class TEINI:
def __init__(self, path):
self.path = path
self.ini = ConfigParser()
self.ini.read(self.path)
# 获取sections列表
def get_sections(self):
if self.ini:
return self.ini.sections()
# 获取指定的section的options列表
def get_options_by_section(self, section):
if self.ini:
return self.ini.options(section)
# 获取指定section的配置信息列表
def get_section_items(self, section):
if self.ini:
return self.ini.items(section)
# 按类型读取配置信息
# 返回字符串类型
def get_string(self, section, option):
if self.ini:
return self.ini.get(section, option)
# 返回int类型
def get_int(self, section, option):
if self.ini:
return self.ini.getint(section, option)
# 返回float类型
def get_float(self, section, option):
if self.ini:
return self.ini.getfloat(section, option)
# 返回bool类型
def get_boolean(self, section, option):
if self.ini:
return self.ini.getboolean(section, option)
# 新增section
def add_section(self, section):
if self.ini:
self.ini.add_section(section)
self.ini.write(open(self.path, "w"))
# 设置指定option值
def set_option(self, section, option, value):
if self.ini:
self.ini.set(section, option, value)
self.ini.write(open(self.path, "w"))
# 删除指定section
def remove_section(self, section):
if self.ini:
self.ini.remove_section(section)
self.ini.write(open(self.path, "w"))
# 删除指定option
def remove_option(self, section, option):
if self.ini:
self.ini.remove_option(section, option)
self.ini.write(open(self.path, "w"))
if __name__ == "__main__":
print("python ini标准库解析实例======根据需求运行代码!!!")
# 如果存在mysql.ini先删除,方便下列代码的运行
if os.path.exists("mysql.ini"):
os.remove("mysql.ini")
# 我们先写一些数据到mysql.ini中
ini = TEINI("mysql.ini")
# 先加一个mysql section
mysql_section = "mysql"
ini.add_section(mysql_section)
# 在mysql section下写入一些配置信息
ini.set_option(mysql_section, "host", "192.168.3.1")
ini.set_option(mysql_section, "port", "3306")
ini.set_option(mysql_section, "db", "mysql")
ini.set_option(mysql_section, "user", "admin")
ini.set_option(mysql_section, "password", "111111")
# 再添加一个oracle section
oracle_section = "oracle"
ini.add_section(oracle_section)
# oracle section下写入一些配置信息
ini.set_option(oracle_section, "host", "192.172.0.1")
ini.set_option(oracle_section, "port", "8080")
ini.set_option(oracle_section, "db", "oracle")
ini.set_option(oracle_section, "user", "guiyin")
ini.set_option(oracle_section, "password", "666666")
# 获取下所有的section,并在console输出
sections = ini.get_sections()
print(sections)
# 遍历各个section下的options,并在console中输出
print("===" * 20)
for sec in sections:
print(sec, " 中的options为: ")
options = ini.get_options_by_section(sec)
print(options)
print("===" * 20)
# 获取各个section下的配置信息
for sec in sections:
print(sec, " 中的配置信息为: ")
items = ini.get_section_items(sec)
print(items)
print("***" * 20)
# 获取指定的option值这里演示读取host和port
host = ini.get_string("mysql", "host")
port = ini.get_int("mysql", "port")
print("类型: ", type(host), " ", type(port))
print(host, " ", port)
# 删除mysql中的host配置
ini.remove_option("mysql", "host")
# 删除oracle section
ini.remove_section("oracle")
# 修改mysql port的值为4000
ini.set_option("mysql", "port", "5538")
# 最终mysql.ini中的文件内容如下
# [mysql]
# port = 5538
# db = mysql
# user = admin
# password = 111111
items = ini.get_section_items("mysql")
print(items)
print("!!!" * 20)
运行结果如下:
总结
来源:https://blog.csdn.net/guiyin1150/article/details/109367197


猜你喜欢
- 在项目中安装mockjs在项目目录下执行以下安装命令npm install mockjs --save在Vue项目中使用mockjs的基本流
- python:simplified-chinese-menu:中文汉化(英文差的)代码高亮:Atom自带自动补全:autocomplete-
- 最近在学习算法,经常遇到一行有多个数据,用空格或者','进行分割。最开始不懂,直接百度,n = input()n = int
- python pyinstaller pyqt4 打包 QWindows最近在做课设,用pyqt设计界面。然后用pyinstaller打包程
- 环境:python-3.6.5JSONJSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,它使得人
- 原文:http://www.smashingmagazine.com/ ... emarkable-favicons/翻译:Blank(怿飞
- <html><head><meta http-equiv="Content-Type" c
- 经常使用python检测服务器是否能ping通, 程序是否正常运行(检测对应的端口是否正常)以前使用shell脚本的写法如下:PINGRET
- 当我们建立一个数据库时,并且想将分散在各处的不同类型的数据库分类汇总在这个新建的数据库中时,尤其是在进行数据检验、净化和转换时,将会面临很大
- 您可以使用 ObjectContext 对象提交或放弃一项由 Microsoft Transaction Server (MTS) 管理的事
- 互斥锁在Golang中,互斥锁(Mutex)是一种基本的同步原语,用于实现对共享资源的互斥访问。互斥锁通过在代码中标记临界区来控制对共享资源
- 利用pymongo包进行数据库的连接,使用xlrd包读取excel数据,由于二者数据结构的不同,要将excel格式数据转换为json格式数据
- 如果你细心跟踪一下SQL Server数据库服务器的登录过程,你会发现口令计算其实是非常脆弱的,SQL Server数据
- pip安装的话,找到自己安装python的路径,在安装路径下会有一个文件夹,比如我的安装路径是c盘我是默认安装路径,在里面有一个python
- 目录1、将 PDF 转换为音频文件2、从列表中播放随机音乐3、不再有书签了4、清理下载文件夹前言:大家平时有没有注意到你每天可能会执行许多的
- 最近做了一个项目,将从微信下载的音频文件(默认为.amr格式)转化为mp3格式(否则前端播放将会遇到困难)上传到云端。经过一番研究,最终决定
- 我们使用编辑器的时候,想要在其中添加一个Django项目,这样就能在里面做一些想要的操作。有些人还没有对Django进行安装,这里直接用命令
- 本文研究的主要问题时Python读取word文本操作,分享了相关概念和实现代码,具体如下。一,docx模块Python可以利用python-
- 本文实例讲述了C#实现按数据库邮件列表发送邮件的方法。分享给大家供大家参考。具体实现方法如下:using System;using Syst
- 前言后续还会更新更多优雅的规范。命名风格1. 【强制】代码中的命名均不能以下划线或美元符号开始,也不能以下划线或美元符号结束。&n