Python的ini配置文件你了解吗

 更新时间:2022年03月09日 11:37:56   作者:代码输入中...  
这篇文章主要为大家详细介绍了Python的ini配置文件,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助

INI介绍

INI是英文“初始化”(initialization)的缩写,被用来对操作系统或特定程序初始化或进行参数设置。由节(section)、

键(key)、值(value)构成。在windows系统中有很多INI文件,例如“System32.ini”和“Win.ini”,相信大家并不陌生。Python

中操作配置文件的模块为configparser,这个模块可以用来解析与Windows上INI文件结构类似的文件。

关于configparser

在python2中该模块名为Configparser,到python3才改为configparser,该模块是用来解析 ini 配置文件的解析器。

其作用就是使用模块中的RawConfigParser()ConfigParser()SafeConfigParser()这三个方法(任选一种),创建一

个对象使用对象的方法对指定的配置文件做增删改查操作。

本次使用的python版本为3.8,编译器使用pycharm。

INI文件格式

INI配置文件组成:

section:表示一个区块,由方括号及方括号中的名称组成,section的范围为当前方括号到下一个方括号的内容,如“DEFAULT”,“select”,“connect_mysql”。

  • 大小写和空格检查: section中的名称在保存和获取的时候是原样保存和获取的,即大小写不一样或者空格不一样等都是不同的section;
  • 重复性检查: 同一个配置文件中section名称不允许重复。

option:表示section中的配置项,由key、分隔符和value组成的键值对,如“select”下的“broswer = Chrome”。

  • 大小写检查: key是大小写不敏感的,保存进文件的时候会自动将key小写保存,但value是大小写敏感的;
  • 空格检查: 通过key获取value时,会自动将文件中的key和value前后空格去掉再进行匹配,即文件中保存为'  broswer     = Chrome      '时,用'broswer'也可以获取到对应的value值'Chrome';
  • 跨多行检查: key是不能跨行的,但是value可以跨行,只要第二行及之后行的缩进与第一行不同即可,一直到下一个option为止;
  • 重复性检查: 和section一样,同一section下的key是不允许重复的;
  • 分隔符: 可以是等号“=”或者冒号“:”。

注释:行注释用井号“#”或者分号“;”表示,特别需要注意的是必须得是行开头(前面可以有空格),用在行中间的就不会算作是注释了。

DEFAULT:这是一个特殊的section,会用作其他section的option取不到值时的备用值,或者可以理解为它是一个root,其他的section都是它的子section,但不是必须提供的。

读取配置文件

import os
import configparser
conf = configparser.ConfigParser() # 类的实例化
curpath = os.path.dirname(os.path.realpath(__file__))
path = os.path.join(curpath,'read.ini')
conf.read(path,encoding="utf-8")
value = conf['select']['url']
print("通过read方法取得的值为:",value)
value = conf.get('login','username')
print('通过get方法取得的值:',value)
value = conf.items('login') # 读取一个section中的所有数据,返回一个列表
print("通过items方法取得的值:",value)
value = conf.getint('connect_mysql','port') # 指定读取数据的类型
print("指定数据类型取出的值:",value)
section = conf.sections() # 读取配置文件中所有section
print(section)

运行结果

注意: 配置文件注释有中文的,在python3中要加上参数encoding="utf-8",不然会报错。

conf.read(path,encoding="utf-8")

写入配置文件

import os
import configparser
conf = configparser.ConfigParser() # 类的实例化
curpath = os.path.dirname(os.path.realpath(__file__))
path = os.path.join(curpath,'read.ini')
conf.add_section('login') # 添加一个新的section
conf.set('login','username','admin')
conf.set('login','password','123123')   # 往配置文件写入数据
conf.write(open(path,'a'))  # 保存数据

运行以后查看配置文件,可以看到新的section已经写入到文件中。

write写入常用的两种方式,第一种是删除原文件内容,重新写入:w

conf.write(open(path,'w'))

第二种是在原文件基础上继续写入内容,追加模式写入:a

conf.write(open(path,'a'))

总结

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注脚本之家的更多内容!      

相关文章

  • python3 wechatpy微信支付的项目实践

    python3 wechatpy微信支付的项目实践

    本文主要介绍了python3 wechatpy微信支付的项目实践,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-01-01
  • Python批量裁剪图片的思路详解

    Python批量裁剪图片的思路详解

    这篇文章主要介绍了Python批量裁剪图片的程序代码,是批量裁剪某一文件夹下的所有图片,并指定裁剪宽高,本文给大家分享实现思路,需要的朋友可以参考下
    2022-07-07
  • Python爬虫之批量下载喜马拉雅音频

    Python爬虫之批量下载喜马拉雅音频

    今天教大家如何利用Python爬虫批量下载喜马拉雅音频,文中有非常详细的代码示例,对正在学习python的小伙伴们很有帮助,需要的朋友可以参考下
    2021-05-05
  • Python学习之12个常用基础语法详解

    Python学习之12个常用基础语法详解

    这篇文章主要为大家介绍了12个Python小案例,包含了日常开发中非常实用的语法,快来跟随小编一起学习一下,看看自己都会多少个呢
    2022-02-02
  • 利用python循环创建多个文件的方法

    利用python循环创建多个文件的方法

    今天小编就为大家分享一篇利用python循环创建多个文件的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-10-10
  • python 运用Django 开发后台接口的实例

    python 运用Django 开发后台接口的实例

    今天小编就为大家分享一篇python 运用Django 开发后台接口的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-12-12
  • 用python代码做configure文件

    用python代码做configure文件

    在lua中,我一直用lua作为config文件,或者承载数据的文件 - 好处是lua本身就很好阅读,然后无需额外写解析的代码,还支持在configure文件中读环境变量,条件判断等,方便又强大!
    2014-07-07
  • Python使用pandas和openpyxl读取Excel表格的方法详解

    Python使用pandas和openpyxl读取Excel表格的方法详解

    这篇文章主要介绍了Python读取Excel表格数据的方法,Python提供了多种读取Excel文件的方式,最常用的库是pandas和openpyxl,下面我将详细介绍如何使用这两个库来读取Excel文件,并包含一些实用示例,需要的朋友可以参考下
    2024-10-10
  • Python安装pygit2失败问题及解决

    Python安装pygit2失败问题及解决

    这篇文章主要介绍了Python安装pygit2失败问题及解决,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-06-06
  • Python中类创建和实例化的过程详解

    Python中类创建和实例化的过程详解

    这篇文章主要介绍了Python中类创建和实例化过程,文中通过代码示例讲解的非常详细,对大家的学习或工作有一定的帮助,需要的朋友可以参考下
    2024-06-06

最新评论