python读配置文件

   当有一个配置文件,里面定义了很多变量和它们的值。例如:

test1 = 1
test2 = 22
test3 = 333

通常情况下,配置文件还需要支持注释行,容错处理(键值前后有可忽略的空格或者tab键等)。用C语言实现的话,复杂的是对变量键值的比较和查找。如果文件内容条目太多,那么在比较和查找方面花费的时间太多。

   python语言中有个很有用的数据类型---字典。它能存储任何类型的数据(其实python语言对数据类型不是那么敏感,呵呵),甚至函数也能存储。针对上面的示例配置文件,python脚本能够很轻松搞定:

import os
def readConf(path):
    '''定义字典变量'''
    dict = {}
    if not os.path.isfile(path):
        print('configure file not exist')
        return False
    fp = open(path, 'r')
    try:
        line = fp.readline()
        while line:
            '''过滤行首和行尾的空字符(空格/tab键/换行符)'''
            line = line.strip(' \t\n')
            '''空行和#号开头的注释行不做处理'''
            if line and not line.startswith('#'):
                '''以=号分割本行,返回列表'''
                list = line.split('=')
                '''对列表元素过滤头尾的空字符'''
                list[0] = list[0].strip(' \t\n')
                list[1] = list[1].strip(' \t\n')
                '''以=号前面的字符串为关键字,=号后面的为值存入字典'''
                dict[list[0]] = list[1]
            line = fp.readline()
    finally:
        fp.close()
    return dict
confDict = readConf('/root/configure')

那么整个配置文件里的内容都在confDict中了,confDict['test1']就可以读取test1的值。是不是很简单?


  类似其他的文件也可以很方便的读写,只举个例子,具体实现就不写了。

# users` info
############################
#Form: name sex age mail  #
############################
zhangsan man 25 [email protected]
lisi     man 24 [email protected]


你可能感兴趣的:(python,配置文件)