Python武器库开发-常用模块之configparser模块(十六)

configparser模块(十六)

ConfigParser模块在python3中修改为configparser.这个模块定义了一个ConfigParser类,该模块的作用就是用来读取配置文件的,使用模块中的RawConfigParser()、ConfigParser()、 SafeConfigParser()这三个方法,创建一个对象使用对象的方法对指定的配置文件做增删改查的操作。一般做自动化测试的时候,会使用到这个模块,用来操作配置文件(ini文件)封装一些常量。比如数据库、邮件、用户名密码、项目常量等等

ini 文件是一种常用配置文件,ini 文件主要如下:

  • ini 文件格式,由节、键、值组成

文件格式:

[section]   # 节  
key = value   # key:键,value:值

现在我们来编写一个ini文件,代码如下:

[user]
name = qianfu
age = 19
id = 1234
date = 2023-11-03

[courses]
name = python
age = 19

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.set(section, option,…) 设置section 下指定 key 的值
config.items(section,…) 获取指定 section 下所有 key 与 value
config.has_section(section) 检查指定的section并返回bool值
config.has_option(section, option) 检查指定的section下的指定option并返回bool值
config.remove_option(section, option,…) 删除指定 section 下指定 key 与 value
config.remove_section(section) 删除指定的section

我们使用以下的语句,导入configparser模块:

import configparser

初始化对象并读取文件

import configparser
import os
# 创建对象实例化
config = configparser.ConfigParser()
dirPath = os.path.dirname(os.path.realpath(__file__))
inipath = os.path.join(dirPath,'test.ini')
# 读取配置文件,如果配置文件不存在则创建
print(config.read(inipath,encoding='utf-8'))

以上代码输出如下:

Python武器库开发-常用模块之configparser模块(十六)_第1张图片

获取并打印所有节点的名称

import configparser

# 创建对象实例化
config = configparser.ConfigParser()
config.read('test.ini',encoding="UTF-8")
secs = config.sections()
print(secs)

以上代码输出如下:

Python武器库开发-常用模块之configparser模块(十六)_第2张图片

获取指定节点的所有key

import configparser

# 创建对象实例化
config = configparser.ConfigParser()
config.read('test.ini',encoding="UTF-8")
option = config.options('user')
print(option)

以上代码输出如下:

Python武器库开发-常用模块之configparser模块(十六)_第3张图片

获取指定节点的键值对

import configparser

# 创建对象实例化
config = configparser.ConfigParser()
config.read('test.ini',encoding="UTF-8")
item_list = config.items('user')
print(item_list)

以上代码输出如下:

Python武器库开发-常用模块之configparser模块(十六)_第4张图片

获取指定节点的指定key的value

import configparser

# 创建对象实例化
config = configparser.ConfigParser()
config.read('test.ini',encoding="UTF-8")
val = config.get('user','age')
print('user的age值为:',val)

以上代码输出如下:

Python武器库开发-常用模块之configparser模块(十六)_第5张图片

检查section或option是否存在,并且返回bool值

import configparser

# 创建对象实例化
config = configparser.ConfigParser()
config.read('test.ini',encoding="UTF-8")
has_sec = config.has_section('user')
print(has_sec)

has_opt = config.has_option('user','name')
print(has_opt)

以上代码输出如下:

Python武器库开发-常用模块之configparser模块(十六)_第6张图片

添加一个section和option并赋值

import configparser

# 创建对象实例化
config = configparser.ConfigParser()
config.read('test.ini',encoding="UTF-8")
#添加一个section
config.add_section("permission")
#添加一个options并赋值
config.set("permission","isMember","true")

with open("test.ini","w",encoding="UTF-8") as file:
    config.write(file)

可以看到我们的test.ini文件成功被添加了添加一个section和option并赋值为true了:

Python武器库开发-常用模块之configparser模块(十六)_第7张图片

删除一个option

import configparser

# 创建对象实例化
config = configparser.ConfigParser()
config.read('test.ini',encoding="UTF-8")
print('删除前的option:',config.items('user'))
config.remove_option('user','age')
print("删除后的option:",config.items('user'))

with open("test.ini","w",encoding="UTF-8") as file:
    config.write(file)

以上代码输出如下:

Python武器库开发-常用模块之configparser模块(十六)_第8张图片

Python武器库开发-常用模块之configparser模块(十六)_第9张图片

删除一个section

import configparser

# 创建对象实例化
config = configparser.ConfigParser()
config.read('test.ini',encoding="UTF-8")
print('删除前的section: ',config.sections())
config.remove_section('user')
print('删除后的section: ',config.sections())


with open("test.ini","w",encoding="UTF-8") as file:
    config.write(file)

以上代码输出如下:

Python武器库开发-常用模块之configparser模块(十六)_第10张图片

Python武器库开发-常用模块之configparser模块(十六)_第11张图片

你可能感兴趣的:(Python武器库开发,python,开发语言,网络安全,武器库)