• 技术文章 >Python技术 >Python基础教程

    python怎么读取配置文件

    爱喝马黛茶的安东尼爱喝马黛茶的安东尼2020-01-02 11:30:29原创6705

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

    1、创建配置文件

    一般将配置文件创建在config包下,配置文件最好使用.ini格式,示例如下:

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    [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、读取配置文件

    1

    2

    3

    4

    5

    6

    7

    8

    9

    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)

    对应输出

    1

    2

    3

    4

    5

    ['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、重构封装

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    21

    22

    23

    24

    25

    26

    27

    28

    29

    30

    31

    32

    33

    34

    35

    36

    37

    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 怎么引入类 下一篇:3种算法实现Python3数组的旋转

    相关文章推荐

    • Python如何读写配置文件?• python配置文件报错怎么解决

    全部评论我要评论

    © 2021 Python学习网 苏ICP备2021003149号-1

  • 取消发布评论
  • 

    Python学习网