Python configparser模块

这篇具有很好参考价值的文章主要介绍了Python configparser模块。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1、configparser 模块介绍:一般做自动化测试的时候,会使用到这个模块,用来操作配置文件(ini文件)封装一些常量。比如数据库、邮件、用户名密码、项目常量等等

2、ini 文件是一种常用配置文件,ini 文件主要如下:文章来源地址https://www.toymoban.com/news/detail-405034.html

  • ini 文件格式,由节、键、值组成
    • [section]   # 节  
    • key = value   # key:键,value:值
      • 一个配置文件中可以有多个 section,每个 section 名字不能相同,每个 section 下可以分多个键值,每个 section 下的键不能相同;例如:MySQL 配置文件格式为 ini 文件,部分内容如下:
[mysqld_safe]
socket = /var/run/mysqld/mysqld.sock
nice = 0

[mysqld]
user = mysql
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
port = 3306
basedir = /usr
datadir = /var/lib/mysql
tmpdir = /tmp
lc-messages-dir = /usr/share/mysql
bind-address = 127.0.0.1
key_buffer_size = 16M
log_error = /var/log/mysql/error.log
  •  ini 文件创建
    • 在 Pycharm 编辑器中,如果右击 new scratch file 中没有 ini 文件选项,则需要安装插件,步骤如下
      • Pycharm 点击 File 选择 setting 选项    
      • 进入 Plugins 在 Marketplace 中找到 Ini 插件点击安装,然后重启 Pycharm  
      • 再次进入 new scratch file 中就能找到 ini 文件  
    • 通过 open 方法创建,且得到结果如下
import configparser

config = configparser.ConfigParser()
config["DEFAULT"] = {'ServerAliveInterval': '45',
                     'Compression': 'yes',
                     'CompressionLevel': '9'}

config['bitbucket.org'] = {}    # 定义一个节点
config['bitbucket.org']['User'] = 'hg'  # 通过字典的添加键值对的方式往节点中添加 key 和 value
config['topsecret.server.com'] = {}
topsecret = config['topsecret.server.com']
topsecret['Host Port'] = '50022'  # mutates the parser
topsecret['ForwardX11'] = 'no'  # same here
config['DEFAULT']['ForwardX11'] = 'yes'

with open('D:\Evan_duoceshi\my_code_file\practice\configparser_module/conf.ini', 'w') as configfile:
    config.write(configfile)
[DEFAULT]
serveraliveinterval = 45
compression = yes
compressionlevel = 9
forwardx11 = yes

[bitbucket.org]
user = hg

[topsecret.server.com]
host port = 50022
forwardx11 = no
  •  ini 文件读取操作,ini 文件需要通过 configparser 模块操作,configparser 是 Python 中自带模块,方法操作如下
    • config = configparser.ConfigParser()    创建 ConfigParser 对象  
    • config.read(filenames, encoding=None)   读取配置文件  
    • config.sections()   获取所有的 section,除 default 节点外
    • config.default_section  只能获取 default 节点的 section
    • config.options(section)   获取指定 section 下所有的 key  
    • config.get(section, option,…)   获取指定 section 下指定 key 的值  
    • config.items(section,…)   获取指定 section 下所有 key 与 value 
# ini 配置文件内容如下
[DEFAULT]
serveraliveinterval = 45
compression = yes
compressionlevel = 9
forwardx11 = yes

[bitbucket.org]
user = hg

[topsecret.server.com]
host port = 50022
forwardx11 = no

# 获取ini文件section操作
import configparser

cf = configparser.ConfigParser()
cf.read("conf.ini")         #  先读取ini文件,才能从ini文件中取数据
print(cf.default_section)   # 只能通过default_section拿到ini文件中的DEFAULT节点
print(cf.sections())    # 通过sections可以拿到ini文件中除DEFAULT以外的所有节点
print(cf.defaults())    # 获取到 default 节点中的数据,数据类型是一个有序字典 OrderedDict([('serveraliveinterval', '45'), ('compression', 'yes'), ('compressionlevel', '9'), ('forwardx11', 'yes')])

# 结果如下
DEFAULT
['bitbucket.org', 'topsecret.server.com']
OrderedDict([('serveraliveinterval', '45'), ('compression', 'yes'), ('compressionlevel', '9'), ('forwardx11', 'yes')])
# 配置文件中的数据
[mysqld_safe]
socket = /var/run/mysqld/mysqld.sock
nice = 0

[mysqld]
user = mysql
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
port = 3306
basedir = /usr
datadir = /var/lib/mysql
tmpdir = /tmp
lc-messages-dir = /usr/share/mysql
bind-address = 127.0.0.1
key_buffer_size = 16M
log_error = /var/log/mysql/error.log 

# Python 读取操作如下
import configparser
#配置文件路径:
path = "C:/Users\Administrator\.PyCharmCE2019.1\config\scratches\scratch.ini"
#创建ConfigParser模块
config = configparser.ConfigParser()
#读取文件
config.read(path, encoding="utf-8")
#获取所有的section
sections = config.sections()
print(sections)
#获取section为mysqld_safe下所有key
keys = config.options("mysqld_safe")
print(keys)
#获取section为mysqld_safe下所有的key-value
items = config.items("mysqld_safe")
print(items)
#获取section为mysqld,key为log_error对应的value
val = config.get("mysqld", "log_error")
print(val)

# 结果如下
['mysqld_safe', 'mysqld']
['socket', 'nice']
[('socket', '/var/run/mysqld/mysqld.sock'), ('nice', '0')]
/var/log/mysql/error.log 
  • ini 文件修改操作
    • config.set(section, option, value=None)   设置 section 中指定 key 的 value 值,key 不存在,直接添加 key-value
    • config.add_section(section)   配置信息中添加 section
    • config.remove_section(section)   删除 section
    • config.remove_option   删除指定 section 中 key
    • config.write(fp, space_around_delimiters=True)   所有修改 ini 配置文件的操作后都需要执行写入操作,将配置信息写回到配置文件
  • 检查 section 与 key 的方法:
    • config.has_section(section)   检查指定 section 是否存在
    • config.has_option(section, option)   检查指定 section 下 option 是否存在
import configparser
#配置文件路径
path = "C:/Users\Administrator\.PyCharmCE2019.1\config\scratches\scratch.ini"
#新配置文件
newpath = "C:/Users\Administrator\.PyCharmCE2019.1\config\scratches\scratch1.ini"
#读取配置文件
config = configparser.ConfigParser()
config.read(path)
#是否存在section:mysqld
if not config.has_section("mysqld"):
    config.add_section("mysqld")
#设置logerror路径
    config.set("mysqld", "log_error", "D:\Evan_duoceshi\my_code_file\practice\configparser_module/mysql_error.log")
#添加section:Mysqldump
if not config.has_section("mysqldump"):
    config.add_section("mysqldump")
    config.set("mysqld", "max_allowed_packet", "16M")
    #打开要写入新的配置文件路径
    wf = open(newpath, "w")
    #写入文件
    config.write(wf, space_around_delimiters=True)
    wf.close()

到了这里,关于Python configparser模块的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Python学习之pygame模块介绍并制作代码雨

    对Python游戏有所了解的朋友都知道,在2D的游戏制作中,经常会用到一个模块pygame,他能帮助我们实现很多方便使用的功能,例如绘制窗口,反馈键盘鼠标信息,播放音频文件,渲染图片文字等等功能。 今天咱们通过pygame模块实现一个代码雨的简单示例,顺便讲解下子模块中

    2024年02月10日
    浏览(56)
  • Python中的绘图模块——turtle库!!(介绍+使用举例)

             turtle(海龟)是Python内置的一个标准模块,它提供了绘制线、圆以及其它形状的函数,使用该模块可以创建图形窗口,在图形窗口中通过简单重复动作直观地绘制界面与图形。         主要使用方面为:创建窗口、设置画布、绘制图形         图形窗口也称

    2024年02月06日
    浏览(45)
  • Python操作Excel表格的模块xlrd的简单介绍

    Python操作Excel表格的模块xlrd的简单介绍 处理数据对Python来说,比较容易,操作简单,功能强大,短短几行代码,就可处理大量的数据信息,下面介绍Python处理Excel表格的一个模块:xlrd。 一、xlrd简介及安装 xlrd是Python处理Excel表格数据的一个模块,他可以对Excel数据进行读取,

    2024年02月01日
    浏览(41)
  • python接口自动化测试 - mock模块基本使用介绍

    py3已将mock集成到unittest库中 为的就是更好的进行单元测试 简单理解, 模拟接口返回参数 通俗易懂, 直接修改接口返回参数的值 官方文档:unittest.mock --- 模拟对象库 — Python 3.11.1 文档 解决依赖问题,达到解耦作用 当我们测试某个 目标接口(模块) 时,该接口 依赖其他接

    2024年02月02日
    浏览(83)
  • python标准模块介绍 -Base64: Base64, Base85等数据编码

    功能:RFC 3548: Base16, Base32, Base64 数据编码。转换二进制数据为适合明文协议传输的 ASCII 序列。转换 8bits 为每个字节包含 6,5 或 4bits 的有效数据,比如 SMTP, URL 的一部分或者 HTTP POST 的一部分。参考: RFC 3548。编码算法不同于 uuencode。 类型:标准库 相关模块:uu, binhex, uu, quopri Base64

    2024年02月05日
    浏览(43)
  • Python logging.handlers模块,RotatingFileHandler、TimedRotatingFileHandler 处理器各参数详细介绍

    在python的 logging.handlers 模块中,提供了很多有用的日志处理程序对象,其中比较常用的有: RotatingFileHandler 、 TimedRotatingFileHandler 。这两个处理程序主要是用来对输出的日志文件进行切割。 RotatingFileHandler 是 Python 自带的日志处理器之一,用于将日志写入到指定的文件中,并控

    2024年02月09日
    浏览(43)
  • python基础----08-----json、pyecharts模块介绍以及折线图、地图、柱状图的绘制

    json就是 一种在各个编程语言中流通的数据格式,负责不同编程语言中的数据传递和交互、类似于: 国际通用语言 -英语。 pyecharts模块 :如果想要 做出数据可视化效果图,可以借助pyecharts模块来完成。 概况: Echarts是个由百度开源的数据可视化,凭借着良好的交互性,精巧的

    2024年02月08日
    浏览(48)
  • Python可视化学习——使用JSON进行数据转换、pyecharts模块调用以及可视化案例的介绍(可视化案例数据暂无),柱状图及动态柱状图的构建

    可视化效果一:2020年印美日新冠累计确诊人数 2020年是新冠疫情爆发的一年,随着疫情的爆发,国内外确诊人数成了大家关心的热点,相信大家都有看过类似的疫情报告.本案例对印度美国日本三个国家确诊人数的进行了可视化处理,形成了可视化的疫情确诊人数报告.  可视

    2024年02月01日
    浏览(80)
  • AndroidAutomotive模块介绍(四)VehicleHal介绍

    前面的文章中,描述了 Android Automotive 的框架中应用、Framework 层服务等知识,本篇文章将会继续按照 Android Automotive 框架介绍 Vehicle Hal 层服务的内容。 上一篇:AndroidAutomotive模块介绍(三)CarService服务 本篇文档将对 Andorid Automotive 框架中 VehicleHal 层展开介绍。VehicleHal 即为车

    2024年04月13日
    浏览(35)
  • 电子模块|压力传感器模块HX711---硬件介绍

    HX711是一款专为高精度称重传感器而设计的24位A/D转换器芯片。与同类型其它芯片相比,该芯片集成了包括稳压电源、片内时钟振荡器等其它同类型芯片所需要的外围电路,具有集成度高、响应速度快、抗干扰性强等优点。降低了电子秤的整机成本,提高了整机的性能和可靠性

    2024年02月07日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包