Python configparser模块封装及构造配置文件

1.configparser模块简介

使用配置文件来灵活的配置一些参数是一件很常见的事情,配置文件的解析并不复杂,在python里更是如此,在官方发布的库中就包含有做这件事情的库,那就是configParser

configParser解析的配置文件的格式比较象ini的配置文件格式,就是文件中由多个section构成,每个section下又有多个配置项

2.看一下configparser生成的配置文件的格式

ini配置文件格式如下:

这里是注释

[log]
log_path = base_dir/OutPut/log/

[image]
img_path = base_dir/OutPut/image/

[report]
report_path = base_dir/OutPut/report/

[test_case]
test_case_path = base_dir/TestData/case.xlsx

3.读取文件内容

import configparser
import os
import sys

BASE_DIR = os.path.dirname(os.path.dirname(os.path.dirname(__file__)))

if sys.platform == "win32":
  ENV_CONF_DIR = os.path.join(BASE_DIR, 'Common/conf/env_config.ini').replace('/', '\\')
else:
  ENV_CONF_DIR = os.path.join(BASE_DIR, 'Common/conf/env_config.ini')

class Config(object):

  def __init__(self, path):
    self.path = path #配置文件名
    self.cf = configparser.ConfigParser() #创建一个配置文件对象
    self.cf.read(self.path, encoding='utf-8') # 调用配置文件对象的读取方法,并传入一个配置文件名

  def get(self, field, key): # 获取字符串类型的选项值
    result = ""
    try:
      result = self.cf.get(field, key)
    except:
      result = ""
    return result

  def set(self, field, key, value):
    try:
      self.cf.set(field, key, value)
      self.cf.write(open(self.path, 'w'))#创建一个配置文件并将获取到的配置信息使用配置文件对象的写入方法进行写入
    except:
      return False
    return True

def r_config(config_file_path, field, key):
  rf = configparser.ConfigParser()
  try:
    rf.read(config_file_path, encoding='utf-8')
    if sys.platform == "win32":
      result = rf.get(field, key).replace('base_dir', str(BASE_DIR)).replace('/', '\\')
    else:
      result = rf.get(field, key).replace('base_dir', str(BASE_DIR))
  except:
    sys.exit(1)
  return result
def w_config(config_file_path, field, key, value):
  wf = configparser.ConfigParser()
  try:
    wf.read(config_file_path)
    wf.set(field, key, value)
    wf.write(open(config_file_path, 'w'))
  except:
    sys.exit(1)
  return True
if __name__ == '__main__':
  print(r_config(ENV_CONF_DIR, 'log', 'log_path'))
  print(r_config(ENV_CONF_DIR, 'DB', 'database'))

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • Python使用自带的ConfigParser模块读写ini配置文件

    在用Python做开发的时候经常会用到数据库或者其他需要动态配置的东西,硬编码在里面每次去改会很麻烦.Python自带有读取配置文件的模块ConfigParser,使用起来非常方便. ini文件 ini配置文件格式: 读取配置文件: import ConfigParser conf = ConfigParser.ConfigParser() conf.read('dbconf.ini') # 文件路径 name = conf.get("section1", "name&quo

  • python解析模块(ConfigParser)使用方法

    测试配置文件test.conf内容如下: 复制代码 代码如下: [first]w = 2v: 3c =11-3 [second] sw=4test: hello 测试配置文件中有两个区域,first和second,另外故意添加一些空格.换行. 下面解析: 复制代码 代码如下: >>> import ConfigParser>>> conf=ConfigParser.ConfigParser()>>> conf.read('test.conf')['te

  • Python中使用ConfigParser解析ini配置文件实例

    ini文件是windows中经常使用的配置文件,主要的格式为: 复制代码 代码如下: [Section1] option1 : value1 option2 : value2 python提供了一个简单的模块ConfigParser可以用来解析类似这种形式的文件.对于ConfigParser模块可以解析key:value和key=value这样的类型,对于#和;开头的行将会自动忽视掉.相当于注释行.常用的函数: 复制代码 代码如下: ConfigParser.RawConfigParser()

  • 详解Python读取配置文件模块ConfigParser

    1,ConfigParser模块简介 假设有如下配置文件,需要在Pyhton程序中读取 $ cat config.ini [db] db_port = 3306 db_user = root db_host = 127.0.0.1 db_pass = xgmtest [SectionOne] Status: Single Name: Derek Value: Yes Age: 30 Single: True [SectionTwo] FavoriteColor = Green [SectionT

  • Python使用ConfigParser模块操作配置文件的方法

    本文实例讲述了Python使用ConfigParser模块操作配置文件的方法.分享给大家供大家参考,具体如下: 一.简介 用于生成和修改常见配置文档,当前模块的名称在 python 3.x 版本中变更为 configparser. 二.配置文件格式 [DEFAULT] ServerAliveInterval = 45 Compression = yes CompressionLevel = 9 ForwardX11 = yes [bitbucket.org] User = hg [topsecr

  • Python内置模块ConfigParser实现配置读写功能的方法

    本文实例讲述了Python内置模块ConfigParser实现配置读写功能的方法.分享给大家供大家参考,具体如下: 用于对特定的配置进行操作,当前模块的名称在 python 3.x 版本中变更为 configparser. #配置文件test.cfg [section1] k1 = v1 k2 :v2 k3 = 1 [section2] k1 = v1 #coding:utf-8 import ConfigParser config = ConfigParser.ConfigParser() c

  • Python自动化测试ConfigParser模块读写配置文件

    Python自动化测试ConfigParser模块读写配置文件 ConfigParser 是Python自带的模块, 用来读写配置文件, 用法及其简单. 直接上代码,不解释,不多说. 配置文件的格式是: []包含的叫section,    section 下有option=value这样的键值 配置文件   test.conf    [section1] name = tank age = 28 [section2] ip = 192.168.1.1 port = 8080 Python代码 #

  • Python3中configparser模块读写ini文件并解析配置的用法详解

    Python3中configparser模块简介 configparser 是 Pyhton 标准库中用来解析配置文件的模块,并且内置方法和字典非常接近.Python2.x 中名为 ConfigParser,3.x 已更名小写,并加入了一些新功能. 配置文件的格式如下: [DEFAULT] ServerAliveInterval = 45 Compression = yes CompressionLevel = 9 ForwardX11 = yes [bitbucket.org] User =

  • Python configparser模块封装及构造配置文件

    1.configparser模块简介 使用配置文件来灵活的配置一些参数是一件很常见的事情,配置文件的解析并不复杂,在python里更是如此,在官方发布的库中就包含有做这件事情的库,那就是configParser configParser解析的配置文件的格式比较象ini的配置文件格式,就是文件中由多个section构成,每个section下又有多个配置项 2.看一下configparser生成的配置文件的格式 ini配置文件格式如下: 这里是注释 [log] log_path = base_dir

  • Python ConfigParser模块的使用示例

    前言 在做项目的时候一些配置文件都会写在settings配置文件中,今天在研究"州的先生"开源文档写作系统-MrDoc的时候,发现部分配置文件写在config.ini中,并利用configparser进行相关配置文件的读取及修改. 一.ConfigParser模块简介 该模块适用于配置文件的格式与windows ini文件类似,是用来读取配置文件的包.配置文件的格式如下:中括号"[ ]"内包含的为section.section 下面为类似于key-value 的配置

  • Python configparser模块配置文件过程解析

    ConfigParser模块在Python3修改为configparser,这个模块定义了一个ConfigeParser类,该类的作用是让配置文件生效.配置文件的格式和window的ini文件相同 编辑配置文件: .ini 模板:内容自定义 一. 编辑配置文件 import configparser config = configparser.ConfigParser() config['DEFAULT'] = { 'ServerAliveInterval':'45', 'Compression

  • Python configparser模块常用方法解析

    ConfigParser模块在python中用来读取配置文件,配置文件的格式跟windows下的ini配置文件相似,可以包含一个或多个节(section), 每个节可以有多个参数(键=值).使用的配置文件的好处就是不用在程序员写死,可以使程序更灵活. 注意:在python 3 中ConfigParser模块名已更名为configparser configparser函数常用方法: 读取配置文件: read(filename) #读取配置文件,直接读取ini文件内容 sections() #获取i

  • Python configparser模块应用过程解析

    一.configparser模块是什么 可以用来操作后缀为 .ini 的配置文件: python标准库(就是python自带的意思,无需安装) 二.configparser模块基本使用 2.1 读取 ini 配置文件 #存在 config.ini 配置文件,内容如下: [DEFAULT] excel_path = ../test_cases/case_data.xlsx log_path = ../logs/test.log log_level = 1 [email] user_name = 3

  • Python configparser模块操作代码实例

    1.生成配置文件 ''' 生成配置文件 ''' import configparser config = configparser.ConfigParser() # 初始化赋值 config["DEFAULT"] = {'ServerAliveInterval': '45', 'Compression': 'yes', 'CompressionLevel': '9'} # 追加 config['DEFAULT']['ForwardX11'] = 'yes' config['bitbuc

  • Python学习之configparser模块的使用详解

    目录 1 configparser安装 2 configparser简介 3 表示方法 4 configparser详细使用 4.1 对象初始化 4.2 获取所有的sections 4.3 获取所有的sections对应的options 4.4 read方法和get方法,获取指定section下的option值 4.5 items方法,获取指点section所用配置信息 4.6 set和write方法,修改某个option的值 4.7 has_section和has_option方法 4.8 a

  • python将logging模块封装成单独模块并实现动态切换Level方式

    查找了很多资料,但网上给出的教程都是大同小异的,而我想将代码进一步精简,解耦,想实现如下两个目标 1. 将logging模块的初始化,配置,设置等代码封装到一个模块中: 2. 能根据配置切换logging.level, 网上给出的教程都是写死的,如果我在线上之前使用了logging.info(msg),现在想切换为logging.debug(msg)怎么办?需要能够根据配置文件中的 设置配置logging.level 两个文件: logging_class:将logging模块的初始化,配置,设

随机推荐