当前位置: 首页 > Python编程 > Python编程实战技能 > Python编程基础入门 > python怎么读取配置文件

python怎么读取配置文件

发布时间:2020年09月27日 08:05:05 来源: 点击量:614

【摘要】configparser模块在python中用来读取配置文件,配置文件的格式跟windows下的ini配置文件相似,可以包含一个或多个节点(section), 每个节可

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:liantuoseleniumTestconfigLocalElement.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:liantuoseleniumTestconfigLocalElement.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:PythonxseleniumTestconfigtestIni.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平台,欢迎关注!

分享到: 编辑:wangmin

就业培训申请领取
您的姓名
您的电话
意向课程
点击领取

环球青藤

官方QQ

扫描上方二维码或点击一键加群,免费领取大礼包,加群暗号:青藤。 一键加群

绑定手机号

应《中华人民共和国网络安全法》加强实名认证机制要求,同时为更加全面的体验产品服务,烦请您绑定手机号.

预约成功

本直播为付费学员的直播课节

请您购买课程后再预约

环球青藤移动课堂APP 直播、听课。职达未来!

安卓版

下载

iPhone版

下载
环球青藤官方微信服务平台

刷题看课 APP下载

免费直播 一键购课

代报名等人工服务

课程咨询 学员服务 公众号

扫描关注微信公众号

APP

扫描下载APP

返回顶部