configparser模块在python中用来读取配置文件,配置文件的格式跟windows下的ini配置文件相似,可以包含一个或多个节点(section), 每个节可以有多个参数(键=值)。使用的配置文件的好处就是不用把程序写死,可以使程序更灵活。

1、创建配置文件

一般将配置文件创建在config包下,配置文件最好使用.ini格式,示例如下:[LoginElement]   #节点(section)

user_name=id>logInName     #其中id决定了通过哪种方式进行定位

user_password=id>password

code_image=id>verifyCode

code_text=id>verifyCodeInput

submit=id>submitForm

[mysql]          #节点(section)

host=id>127.0.0.1

port=id>3306

user=id>root

password=id>123456

2、读取配置文件cf=configparser.ConfigParser()   #创建对象

cf.read('D:\liantuo\seleniumTest\config\LocalElement.ini',encoding='UTF-8')   #读取配置文件,直接读取ini文件内容

print(cf.sections())         #获取ini文件内所有的section(节点),以列表形式返回

print(cf.options("LoginElement"))   #获取指定sections下所有options (key),以列表形式返回

print(cf.items('LoginElement'))     #获取指定section下所有的键值对(key-value)

print(cf.get('LoginElement','user_name'))   #获取section中option的值,返回为string类型

getint(section,option)  #返回int类型

getfloat(section, option)  #返回float类型

getboolean(section,option) #返回boolen类型

*注意:读取配置文件时参数添加encoding='UTF-8' ,防止(UnicodeDecodeError: 'gbk' codec can't decode byte 0x80 in position 15: illegal multibyte sequence)

对应输出['LoginElement', 'mysql']

['user_name', 'user_password', 'code_image', 'code_text', 'submit']

[('user_name', 'id>logInName'), ('user_password', 'id>password'), ('code_image', 'id>verifyCode'), ('code_text',

'id>verifyCodeInput'), ('submit', 'id>submitForm')]

id>logInName

3、重构封装class ReadIni(object):

# 构造函数

def __init__(self,file_name=None,node=None):

'''

:param file_name:配置文件地址

:param node: 节点名

'''

#容错处理

if file_name == None:

#默认地址

file_name = 'D:\liantuo\seleniumTest\config\LocalElement.ini'

else:

self.file_name=file_name

if node == None:

#默认节点

self.node = "LoginElement"

else:

self.node = node

self.cf = self.load_ini(file_name)

#加载文件

def load_ini(self,file_name):

cf = configparser.ConfigParser()

cf.read(file_name,encoding='utf-8')

return cf

#获取value得值

def get_value(self,key):

data = self.cf.get(self.node,key)

return data

#主入口,相当于java的main方法

if __name__ == '__main__':

#自定义

# path=r'E:\Pythonx\seleniumTest\config\testIni.ini'   #注意r

# read_init = ReadIni(file_name=path,node='testa')   #传入新自定义配置文件地址、节点

# print(read_init.get_value('ji'))    #获取value值

#默认

read_init = ReadIni()   #默认配置文件地址、节点

print(read_init.get_value('user_name'))  #传入key值,获取value

python学习网,免费的在线学习python平台,欢迎关注!

您可能感兴趣的文章:

python中怎么创建配置文件,python怎么读取配置文件相关推荐

  1. python文件读取方法read(size)的含义是_在Python中可使用read([size])来读取文件中的数据,如果参数size省略,则读取文件中的()。...

    [单选题]李明在他所属的公司工作五年,每天都很认真地处理繁杂的事情,同事们都夸他认真,但是依然没有建树,这是因为: [多选题]品牌标志的作用表现在 [单选题]新产品开发的第一个阶段是_______. ...

  2. python中语法错误-python冒号语法错误python中如何创建字典

    python字典定义 字典是另一种可变容器模型,且可存储任意类型对象. 字典的每个键值 key=>value 对用冒号 : 分割,每个键值对之间用逗号 , 分割,整个字典包括在花括号 {} 中 ...

  3. python文件读取方法read(size)的含义是_在Python中可使用read([size])来读取文件中的数据,如果参数size省略,则读取文件中的()。(4.0分)_学小易找答案...

    [单选题]文本文件存储的是(),由若干文本行组成,通常每行以换行符 '\n' 结尾.(4.0分) [单选题]()属性是返回被打开文件的访问模式.(4.0分) [单选题]重力坝是由砼或( )修筑而成的大 ...

  4. python创建类的实例方法-Python中动态创建类实例的方法

    简介 在Java中我们可以通过反射来根据类名创建类实例,那么在Python我们怎么实现类似功能呢? 其实在Python有一个builtin函数import,我们可以使用这个函数来在运行时动态加载一些模 ...

  5. Python中字典创建、遍历、添加

    Python中字典创建.遍历.添加 字典是Python中唯一的键-值类型,是Python中非常重要的数据结构,因其用哈希的方式存储数据,其复杂度为O(1),速度非常快.下面列出字典的常用的用途. 一. ...

  6. 在Python中FITS格式文件数据的读取 (转载)

    在Python中FITS格式文件数据的读取 (转载) 前言 \space\space\space\space     FITS(Flexible Image Transport System)格式文件 ...

  7. python读取枚举_在python中枚举(enumerate in python)

    在python中枚举(enumerate in python) 说, term='asdf'; InvertedIndex = {}; InvertedIndex[term] = [1,2,2,2,4 ...

  8. python中八进制_在Python中以八进制格式输入数字

    python中八进制 Syntax to convert octal value to an integer (decimal format), 将八进制值转换为整数(十进制格式)的语法, int(o ...

  9. python中readlines函数用法,python中read() readline()以及readlines()用法

    我们谈到"文本处理"时,我们通常是指处理的内容.Python 将文本文件的内容读入可以操作的字符串变量非常容易.文件对象提供了三个"读"方法: .read(). ...

  10. python 中^是什么意思,python 中%是什么意思

    python中^是什么意思 在Python" // "表示整数除法.Python其它表达式:Python的表达式写法与C/C++类似.只是在某些写法有所差别.主要的算术运算符与C/ ...

最新文章

  1. 最新视觉Transformer综述(2017-2020年)
  2. python在中小学教学中的应用-小学信息技术教学中进行Python 编程语言教学的策略...
  3. 在windows上搭建react-native的android环境
  4. 【OpenCV笔记】图像预处理
  5. Ubuntu 16.04下Caffe-SSD的应用——常见训练时报错总结
  6. 上大专是学计算机还是会计,上三本还是上专科 大专学什么专业好
  7. JQuery中元素的数据存储
  8. 虚拟空间独立服务器哪个好,共享虚拟主机和独立哪个好
  9. 广度优先遍历类似于二叉树的_二叉树的各种遍历方法的简单解释
  10. 跨屏html ui,Amaze UI(HTML5 跨屏前端框架) v2.7.2
  11. php的命名空间实例
  12. python 服务器_使用 Python 开发 EMQ X MQTT 服务器插件
  13. jquery ajax修改密码,提交form表单---修改密码 ajax、jQuery
  14. 沉思录之面向对象随想
  15. 云计算最终比拼的是什么?
  16. 文件加密器 java_文件加密器: 使用Java Swing编写的文件加密工具,可批量加密电脑中的文件。兼容Windows和Linux。...
  17. PLM与PDM的概念与区别
  18. 记录m3u8变成图片的解决办法
  19. Android Mars XLog的编译
  20. m基于matlab的无线光通信CDMA闭环链路功率控制算法仿真,对比了OOK,2PPM,4PPM,8PPM,16PPM

热门文章

  1. js鼠标放上去和移出事件
  2. USRP 型号对比与挑选
  3. Nginx安装在服务器
  4. 嵌入式软件开发为什么需要DevOps?
  5. 盐城北大青鸟东台基地开展春季游学活动
  6. char类型和varchar的区别和选用
  7. TimeSformer:抛弃CNN的Transformer视频理解框架
  8. STM32基于软件模拟IIC进行AHT21B温湿度采集
  9. 爬虫基础(6)网页解析之XPath库
  10. 人工智能AI课 推荐算法详解和实现